﻿2026-06-21T05:16:14.0681733Z ##[group]Run ./traceable-reqs check --json
2026-06-21T05:16:14.0682089Z [36;1m./traceable-reqs check --json[0m
2026-06-21T05:16:14.0694898Z shell: /usr/bin/bash -e {0}
2026-06-21T05:16:14.0695158Z ##[endgroup]
2026-06-21T05:16:14.1561141Z {
2026-06-21T05:16:14.1561655Z   "schemaVersion": 1,
2026-06-21T05:16:14.1562143Z   "summary": {
2026-06-21T05:16:14.1562906Z     "requirementCount": 275,
2026-06-21T05:16:14.1563365Z     "completeCount": 275,
2026-06-21T05:16:14.1563814Z     "incompleteCount": 0,
2026-06-21T05:16:14.1564256Z     "findingCount": 0
2026-06-21T05:16:14.1564667Z   },
2026-06-21T05:16:14.1565039Z   "requirements": [
2026-06-21T05:16:14.1565443Z     {
2026-06-21T05:16:14.1566258Z       "id": "REQ-API-1",
2026-06-21T05:16:14.1566866Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-21T05:16:14.1567510Z       "requiredStages": [
2026-06-21T05:16:14.1567934Z         "impl",
2026-06-21T05:16:14.1568296Z         "unit",
2026-06-21T05:16:14.1568649Z         "int"
2026-06-21T05:16:14.1569197Z       ],
2026-06-21T05:16:14.1569545Z       "stages": {
2026-06-21T05:16:14.1569931Z         "doc": {
2026-06-21T05:16:14.1570326Z           "complete": false,
2026-06-21T05:16:14.1570766Z           "evidence": []
2026-06-21T05:16:14.1571175Z         },
2026-06-21T05:16:14.1571549Z         "impl": {
2026-06-21T05:16:14.1571944Z           "complete": true,
2026-06-21T05:16:14.1572365Z           "evidence": [
2026-06-21T05:16:14.1572751Z             {
2026-06-21T05:16:14.1573170Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T05:16:14.1573619Z               "line": 15
2026-06-21T05:16:14.1573944Z             }
2026-06-21T05:16:14.1574247Z           ]
2026-06-21T05:16:14.1574545Z         },
2026-06-21T05:16:14.1574831Z         "int": {
2026-06-21T05:16:14.1575150Z           "complete": true,
2026-06-21T05:16:14.1575498Z           "evidence": [
2026-06-21T05:16:14.1575823Z             {
2026-06-21T05:16:14.1576181Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-21T05:16:14.1576618Z               "line": 13
2026-06-21T05:16:14.1576940Z             }
2026-06-21T05:16:14.1577237Z           ]
2026-06-21T05:16:14.1577517Z         },
2026-06-21T05:16:14.1577809Z         "unit": {
2026-06-21T05:16:14.1578118Z           "complete": true,
2026-06-21T05:16:14.1578485Z           "evidence": [
2026-06-21T05:16:14.1578823Z             {
2026-06-21T05:16:14.1579252Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T05:16:14.1579652Z               "line": 717
2026-06-21T05:16:14.1579976Z             },
2026-06-21T05:16:14.1580286Z             {
2026-06-21T05:16:14.1580625Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T05:16:14.1581040Z               "line": 804
2026-06-21T05:16:14.1581359Z             }
2026-06-21T05:16:14.1581665Z           ]
2026-06-21T05:16:14.1581949Z         }
2026-06-21T05:16:14.1582233Z       }
2026-06-21T05:16:14.1582524Z     },
2026-06-21T05:16:14.1582809Z     {
2026-06-21T05:16:14.1583105Z       "id": "REQ-API-2",
2026-06-21T05:16:14.1583611Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-21T05:16:14.1584194Z       "requiredStages": [
2026-06-21T05:16:14.1584542Z         "impl",
2026-06-21T05:16:14.1584849Z         "unit",
2026-06-21T05:16:14.1585157Z         "int"
2026-06-21T05:16:14.1585449Z       ],
2026-06-21T05:16:14.1585749Z       "stages": {
2026-06-21T05:16:14.1586044Z         "doc": {
2026-06-21T05:16:14.1586364Z           "complete": false,
2026-06-21T05:16:14.1586718Z           "evidence": []
2026-06-21T05:16:14.1587047Z         },
2026-06-21T05:16:14.1587335Z         "impl": {
2026-06-21T05:16:14.1587657Z           "complete": true,
2026-06-21T05:16:14.1588025Z           "evidence": [
2026-06-21T05:16:14.1588364Z             {
2026-06-21T05:16:14.1588716Z               "path": "crates/spt-store/src/history.rs",
2026-06-21T05:16:14.1589221Z               "line": 17
2026-06-21T05:16:14.1589565Z             },
2026-06-21T05:16:14.1589856Z             {
2026-06-21T05:16:14.1590460Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T05:16:14.1590885Z               "line": 20
2026-06-21T05:16:14.1591199Z             },
2026-06-21T05:16:14.1591510Z             {
2026-06-21T05:16:14.1591853Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T05:16:14.1592285Z               "line": 142
2026-06-21T05:16:14.1592612Z             },
2026-06-21T05:16:14.1592904Z             {
2026-06-21T05:16:14.1593251Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.1593675Z               "line": 24
2026-06-21T05:16:14.1594008Z             },
2026-06-21T05:16:14.1594309Z             {
2026-06-21T05:16:14.1594824Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.1595238Z               "line": 41
2026-06-21T05:16:14.1595560Z             },
2026-06-21T05:16:14.1595856Z             {
2026-06-21T05:16:14.1596208Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.1596618Z               "line": 213
2026-06-21T05:16:14.1596958Z             },
2026-06-21T05:16:14.1597248Z             {
2026-06-21T05:16:14.1597588Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.1598000Z               "line": 255
2026-06-21T05:16:14.1598323Z             },
2026-06-21T05:16:14.1598628Z             {
2026-06-21T05:16:14.1599062Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.1599500Z               "line": 334
2026-06-21T05:16:14.1599840Z             },
2026-06-21T05:16:14.1600140Z             {
2026-06-21T05:16:14.1600507Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.1600940Z               "line": 397
2026-06-21T05:16:14.1601296Z             },
2026-06-21T05:16:14.1601616Z             {
2026-06-21T05:16:14.1601855Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.1602142Z               "line": 436
2026-06-21T05:16:14.1602452Z             },
2026-06-21T05:16:14.1602776Z             {
2026-06-21T05:16:14.1603131Z               "path": "crates/spt/src/api/worker.rs",
2026-06-21T05:16:14.1603577Z               "line": 17
2026-06-21T05:16:14.1603906Z             },
2026-06-21T05:16:14.1604216Z             {
2026-06-21T05:16:14.1604559Z               "path": "crates/spt/src/api/worker.rs",
2026-06-21T05:16:14.1604966Z               "line": 30
2026-06-21T05:16:14.1605295Z             },
2026-06-21T05:16:14.1605586Z             {
2026-06-21T05:16:14.1605932Z               "path": "crates/spt/src/api/worker.rs",
2026-06-21T05:16:14.1606345Z               "line": 63
2026-06-21T05:16:14.1606664Z             },
2026-06-21T05:16:14.1606969Z             {
2026-06-21T05:16:14.1607331Z               "path": "crates/spt/src/api/worker.rs",
2026-06-21T05:16:14.1607760Z               "line": 77
2026-06-21T05:16:14.1608104Z             }
2026-06-21T05:16:14.1608403Z           ]
2026-06-21T05:16:14.1608686Z         },
2026-06-21T05:16:14.1609053Z         "int": {
2026-06-21T05:16:14.1609373Z           "complete": true,
2026-06-21T05:16:14.1609746Z           "evidence": [
2026-06-21T05:16:14.1610060Z             {
2026-06-21T05:16:14.1610308Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-21T05:16:14.1610609Z               "line": 14
2026-06-21T05:16:14.1610828Z             },
2026-06-21T05:16:14.1611034Z             {
2026-06-21T05:16:14.1611261Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-21T05:16:14.1611542Z               "line": 187
2026-06-21T05:16:14.1611762Z             }
2026-06-21T05:16:14.1611957Z           ]
2026-06-21T05:16:14.1612139Z         },
2026-06-21T05:16:14.1612339Z         "unit": {
2026-06-21T05:16:14.1612562Z           "complete": true,
2026-06-21T05:16:14.1612806Z           "evidence": [
2026-06-21T05:16:14.1613026Z             {
2026-06-21T05:16:14.1613264Z               "path": "crates/spt-store/src/history.rs",
2026-06-21T05:16:14.1613543Z               "line": 82
2026-06-21T05:16:14.1613751Z             },
2026-06-21T05:16:14.1613947Z             {
2026-06-21T05:16:14.1614352Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T05:16:14.1614638Z               "line": 279
2026-06-21T05:16:14.1614853Z             },
2026-06-21T05:16:14.1615044Z             {
2026-06-21T05:16:14.1615287Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.1615574Z               "line": 709
2026-06-21T05:16:14.1615797Z             },
2026-06-21T05:16:14.1615992Z             {
2026-06-21T05:16:14.1616250Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.1616549Z               "line": 720
2026-06-21T05:16:14.1616781Z             },
2026-06-21T05:16:14.1616990Z             {
2026-06-21T05:16:14.1617366Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.1617662Z               "line": 873
2026-06-21T05:16:14.1617887Z             },
2026-06-21T05:16:14.1618088Z             {
2026-06-21T05:16:14.1618330Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.1618616Z               "line": 919
2026-06-21T05:16:14.1618845Z             },
2026-06-21T05:16:14.1619134Z             {
2026-06-21T05:16:14.1619371Z               "path": "crates/spt/src/api/worker.rs",
2026-06-21T05:16:14.1619657Z               "line": 143
2026-06-21T05:16:14.1619881Z             },
2026-06-21T05:16:14.1620072Z             {
2026-06-21T05:16:14.1620316Z               "path": "crates/spt/src/api/worker.rs",
2026-06-21T05:16:14.1620596Z               "line": 187
2026-06-21T05:16:14.1620826Z             }
2026-06-21T05:16:14.1621022Z           ]
2026-06-21T05:16:14.1621202Z         }
2026-06-21T05:16:14.1621402Z       }
2026-06-21T05:16:14.1621599Z     },
2026-06-21T05:16:14.1621801Z     {
2026-06-21T05:16:14.1622007Z       "id": "REQ-API-3",
2026-06-21T05:16:14.1622299Z       "title": "commune/signoff are file-drops, not commands",
2026-06-21T05:16:14.1622618Z       "requiredStages": [
2026-06-21T05:16:14.1622956Z         "impl",
2026-06-21T05:16:14.1623286Z         "unit",
2026-06-21T05:16:14.1623610Z         "int"
2026-06-21T05:16:14.1623920Z       ],
2026-06-21T05:16:14.1624223Z       "stages": {
2026-06-21T05:16:14.1624541Z         "doc": {
2026-06-21T05:16:14.1624875Z           "complete": false,
2026-06-21T05:16:14.1625246Z           "evidence": []
2026-06-21T05:16:14.1625585Z         },
2026-06-21T05:16:14.1625889Z         "impl": {
2026-06-21T05:16:14.1626232Z           "complete": true,
2026-06-21T05:16:14.1626591Z           "evidence": [
2026-06-21T05:16:14.1626928Z             {
2026-06-21T05:16:14.1627292Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-21T05:16:14.1627728Z               "line": 27
2026-06-21T05:16:14.1628057Z             },
2026-06-21T05:16:14.1628372Z             {
2026-06-21T05:16:14.1628752Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.1629448Z               "line": 566
2026-06-21T05:16:14.1629955Z             }
2026-06-21T05:16:14.1630470Z           ]
2026-06-21T05:16:14.1630961Z         },
2026-06-21T05:16:14.1631404Z         "int": {
2026-06-21T05:16:14.1631934Z           "complete": true,
2026-06-21T05:16:14.1632433Z           "evidence": [
2026-06-21T05:16:14.1632944Z             {
2026-06-21T05:16:14.1633502Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-21T05:16:14.1634065Z               "line": 261
2026-06-21T05:16:14.1634592Z             }
2026-06-21T05:16:14.1663675Z           ]
2026-06-21T05:16:14.1664089Z         },
2026-06-21T05:16:14.1664457Z         "unit": {
2026-06-21T05:16:14.1664868Z           "complete": true,
2026-06-21T05:16:14.1665320Z           "evidence": [
2026-06-21T05:16:14.1665706Z             {
2026-06-21T05:16:14.1666155Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-21T05:16:14.1666704Z               "line": 280
2026-06-21T05:16:14.1667120Z             },
2026-06-21T05:16:14.1667491Z             {
2026-06-21T05:16:14.1667954Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.1668483Z               "line": 948
2026-06-21T05:16:14.1668903Z             }
2026-06-21T05:16:14.1669653Z           ]
2026-06-21T05:16:14.1669997Z         }
2026-06-21T05:16:14.1670354Z       }
2026-06-21T05:16:14.1670697Z     },
2026-06-21T05:16:14.1671049Z     {
2026-06-21T05:16:14.1671431Z       "id": "REQ-API-4",
2026-06-21T05:16:14.1674813Z       "title": "api resolves the adapter manifest (+ profile + install dir) from `--adapter name:profile` via the registry when `--manifest` is omitted; `--manifest` becomes an optional OVERRIDE (unregistered / local-dev manifests). Removes the require-both-flags redundancy — a registered adapter's live bringup / digest / capability needs only `--adapter` — and yields the precise install dir (the record's source_dir) rather than the --manifest parent, closing the copy-mode psyche-binary edge (v0.8.0)",
2026-06-21T05:16:14.1677394Z       "requiredStages": [
2026-06-21T05:16:14.1677746Z         "doc",
2026-06-21T05:16:14.1678075Z         "impl",
2026-06-21T05:16:14.1678395Z         "unit"
2026-06-21T05:16:14.1678719Z       ],
2026-06-21T05:16:14.1679124Z       "stages": {
2026-06-21T05:16:14.1679439Z         "doc": {
2026-06-21T05:16:14.1679785Z           "complete": true,
2026-06-21T05:16:14.1680151Z           "evidence": [
2026-06-21T05:16:14.1680470Z             {
2026-06-21T05:16:14.1680795Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.1681196Z               "line": 149
2026-06-21T05:16:14.1681534Z             }
2026-06-21T05:16:14.1681844Z           ]
2026-06-21T05:16:14.1682149Z         },
2026-06-21T05:16:14.1682462Z         "impl": {
2026-06-21T05:16:14.1682760Z           "complete": true,
2026-06-21T05:16:14.1683022Z           "evidence": [
2026-06-21T05:16:14.1683270Z             {
2026-06-21T05:16:14.1683700Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T05:16:14.1684153Z               "line": 484
2026-06-21T05:16:14.1684501Z             }
2026-06-21T05:16:14.1684786Z           ]
2026-06-21T05:16:14.1685073Z         },
2026-06-21T05:16:14.1685359Z         "int": {
2026-06-21T05:16:14.1685683Z           "complete": false,
2026-06-21T05:16:14.1686050Z           "evidence": []
2026-06-21T05:16:14.1686383Z         },
2026-06-21T05:16:14.1686674Z         "unit": {
2026-06-21T05:16:14.1686998Z           "complete": true,
2026-06-21T05:16:14.1687350Z           "evidence": [
2026-06-21T05:16:14.1687658Z             {
2026-06-21T05:16:14.1687996Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T05:16:14.1688415Z               "line": 657
2026-06-21T05:16:14.1688740Z             },
2026-06-21T05:16:14.1689108Z             {
2026-06-21T05:16:14.1689442Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T05:16:14.1689870Z               "line": 681
2026-06-21T05:16:14.1690213Z             },
2026-06-21T05:16:14.1690516Z             {
2026-06-21T05:16:14.1690854Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T05:16:14.1691273Z               "line": 705
2026-06-21T05:16:14.1691607Z             }
2026-06-21T05:16:14.1691898Z           ]
2026-06-21T05:16:14.1692184Z         }
2026-06-21T05:16:14.1692480Z       }
2026-06-21T05:16:14.1692761Z     },
2026-06-21T05:16:14.1693041Z     {
2026-06-21T05:16:14.1693340Z       "id": "REQ-ARCH-1",
2026-06-21T05:16:14.1693755Z       "title": "Many small acyclically-layered crates",
2026-06-21T05:16:14.1694203Z       "requiredStages": [
2026-06-21T05:16:14.1694527Z         "impl"
2026-06-21T05:16:14.1694818Z       ],
2026-06-21T05:16:14.1695113Z       "stages": {
2026-06-21T05:16:14.1695428Z         "doc": {
2026-06-21T05:16:14.1695746Z           "complete": false,
2026-06-21T05:16:14.1696113Z           "evidence": []
2026-06-21T05:16:14.1696375Z         },
2026-06-21T05:16:14.1696676Z         "impl": {
2026-06-21T05:16:14.1696919Z           "complete": true,
2026-06-21T05:16:14.1697159Z           "evidence": [
2026-06-21T05:16:14.1697372Z             {
2026-06-21T05:16:14.1697620Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-21T05:16:14.1697906Z               "line": 18
2026-06-21T05:16:14.1698125Z             },
2026-06-21T05:16:14.1698457Z             {
2026-06-21T05:16:14.1698699Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-21T05:16:14.1699034Z               "line": 12
2026-06-21T05:16:14.1699233Z             },
2026-06-21T05:16:14.1699434Z             {
2026-06-21T05:16:14.1699668Z               "path": "crates/spt-store/src/lib.rs",
2026-06-21T05:16:14.1699949Z               "line": 12
2026-06-21T05:16:14.1700163Z             }
2026-06-21T05:16:14.1700351Z           ]
2026-06-21T05:16:14.1700535Z         },
2026-06-21T05:16:14.1700736Z         "int": {
2026-06-21T05:16:14.1700958Z           "complete": false,
2026-06-21T05:16:14.1701204Z           "evidence": []
2026-06-21T05:16:14.1701519Z         },
2026-06-21T05:16:14.1701720Z         "unit": {
2026-06-21T05:16:14.1701940Z           "complete": false,
2026-06-21T05:16:14.1702172Z           "evidence": []
2026-06-21T05:16:14.1702382Z         }
2026-06-21T05:16:14.1702564Z       }
2026-06-21T05:16:14.1702744Z     },
2026-06-21T05:16:14.1702931Z     {
2026-06-21T05:16:14.1703150Z       "id": "REQ-ARCH-2",
2026-06-21T05:16:14.1703472Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-21T05:16:14.1703814Z       "requiredStages": [
2026-06-21T05:16:14.1704038Z         "impl"
2026-06-21T05:16:14.1704234Z       ],
2026-06-21T05:16:14.1704433Z       "stages": {
2026-06-21T05:16:14.1704644Z         "doc": {
2026-06-21T05:16:14.1704849Z           "complete": false,
2026-06-21T05:16:14.1705087Z           "evidence": []
2026-06-21T05:16:14.1705302Z         },
2026-06-21T05:16:14.1705503Z         "impl": {
2026-06-21T05:16:14.1705717Z           "complete": true,
2026-06-21T05:16:14.1705945Z           "evidence": [
2026-06-21T05:16:14.1706165Z             {
2026-06-21T05:16:14.1706407Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-21T05:16:14.1706683Z               "line": 18
2026-06-21T05:16:14.1706889Z             }
2026-06-21T05:16:14.1707080Z           ]
2026-06-21T05:16:14.1707288Z         },
2026-06-21T05:16:14.1707480Z         "int": {
2026-06-21T05:16:14.1707691Z           "complete": false,
2026-06-21T05:16:14.1707923Z           "evidence": []
2026-06-21T05:16:14.1708128Z         },
2026-06-21T05:16:14.1708320Z         "unit": {
2026-06-21T05:16:14.1708528Z           "complete": false,
2026-06-21T05:16:14.1708756Z           "evidence": []
2026-06-21T05:16:14.1709031Z         }
2026-06-21T05:16:14.1709231Z       }
2026-06-21T05:16:14.1709413Z     },
2026-06-21T05:16:14.1709599Z     {
2026-06-21T05:16:14.1709798Z       "id": "REQ-ARCH-3",
2026-06-21T05:16:14.1710151Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-21T05:16:14.1710518Z       "requiredStages": [
2026-06-21T05:16:14.1710748Z         "impl",
2026-06-21T05:16:14.1710939Z         "unit"
2026-06-21T05:16:14.1711134Z       ],
2026-06-21T05:16:14.1711333Z       "stages": {
2026-06-21T05:16:14.1711542Z         "doc": {
2026-06-21T05:16:14.1711755Z           "complete": false,
2026-06-21T05:16:14.1711994Z           "evidence": []
2026-06-21T05:16:14.1712209Z         },
2026-06-21T05:16:14.1712408Z         "impl": {
2026-06-21T05:16:14.1712614Z           "complete": true,
2026-06-21T05:16:14.1712843Z           "evidence": [
2026-06-21T05:16:14.1713061Z             {
2026-06-21T05:16:14.1713300Z               "path": "crates/spt-proto/src/version.rs",
2026-06-21T05:16:14.1713585Z               "line": 34
2026-06-21T05:16:14.1713788Z             },
2026-06-21T05:16:14.1713990Z             {
2026-06-21T05:16:14.1714226Z               "path": "crates/spt-proto/src/version.rs",
2026-06-21T05:16:14.1714509Z               "line": 41
2026-06-21T05:16:14.1714708Z             }
2026-06-21T05:16:14.1714903Z           ]
2026-06-21T05:16:14.1715113Z         },
2026-06-21T05:16:14.1715303Z         "int": {
2026-06-21T05:16:14.1715509Z           "complete": false,
2026-06-21T05:16:14.1715743Z           "evidence": []
2026-06-21T05:16:14.1715952Z         },
2026-06-21T05:16:14.1716152Z         "unit": {
2026-06-21T05:16:14.1716368Z           "complete": true,
2026-06-21T05:16:14.1716909Z           "evidence": [
2026-06-21T05:16:14.1717124Z             {
2026-06-21T05:16:14.1717364Z               "path": "crates/spt-proto/src/version.rs",
2026-06-21T05:16:14.1717635Z               "line": 51
2026-06-21T05:16:14.1717843Z             },
2026-06-21T05:16:14.1718040Z             {
2026-06-21T05:16:14.1718274Z               "path": "crates/spt-proto/src/version.rs",
2026-06-21T05:16:14.1718551Z               "line": 71
2026-06-21T05:16:14.1718769Z             },
2026-06-21T05:16:14.1719045Z             {
2026-06-21T05:16:14.1719283Z               "path": "crates/spt-proto/src/version.rs",
2026-06-21T05:16:14.1719562Z               "line": 83
2026-06-21T05:16:14.1719868Z             }
2026-06-21T05:16:14.1720067Z           ]
2026-06-21T05:16:14.1720254Z         }
2026-06-21T05:16:14.1720440Z       }
2026-06-21T05:16:14.1720626Z     },
2026-06-21T05:16:14.1720808Z     {
2026-06-21T05:16:14.1721007Z       "id": "REQ-ARCH-4",
2026-06-21T05:16:14.1721336Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-21T05:16:14.1721674Z       "requiredStages": [
2026-06-21T05:16:14.1721899Z         "impl",
2026-06-21T05:16:14.1722112Z         "unit"
2026-06-21T05:16:14.1722300Z       ],
2026-06-21T05:16:14.1722482Z       "stages": {
2026-06-21T05:16:14.1722686Z         "doc": {
2026-06-21T05:16:14.1722901Z           "complete": false,
2026-06-21T05:16:14.1723145Z           "evidence": []
2026-06-21T05:16:14.1723355Z         },
2026-06-21T05:16:14.1723545Z         "impl": {
2026-06-21T05:16:14.1723765Z           "complete": true,
2026-06-21T05:16:14.1723990Z           "evidence": [
2026-06-21T05:16:14.1724203Z             {
2026-06-21T05:16:14.1724455Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T05:16:14.1724726Z               "line": 165
2026-06-21T05:16:14.1724949Z             },
2026-06-21T05:16:14.1725144Z             {
2026-06-21T05:16:14.1725387Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T05:16:14.1725664Z               "line": 188
2026-06-21T05:16:14.1725883Z             },
2026-06-21T05:16:14.1726079Z             {
2026-06-21T05:16:14.1726308Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T05:16:14.1726585Z               "line": 208
2026-06-21T05:16:14.1726804Z             },
2026-06-21T05:16:14.1727008Z             {
2026-06-21T05:16:14.1727239Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T05:16:14.1727512Z               "line": 223
2026-06-21T05:16:14.1727732Z             },
2026-06-21T05:16:14.1727928Z             {
2026-06-21T05:16:14.1728157Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T05:16:14.1728428Z               "line": 273
2026-06-21T05:16:14.1728643Z             }
2026-06-21T05:16:14.1728844Z           ]
2026-06-21T05:16:14.1729101Z         },
2026-06-21T05:16:14.1729300Z         "int": {
2026-06-21T05:16:14.1729516Z           "complete": false,
2026-06-21T05:16:14.1729757Z           "evidence": []
2026-06-21T05:16:14.1729974Z         },
2026-06-21T05:16:14.1730176Z         "unit": {
2026-06-21T05:16:14.1730384Z           "complete": true,
2026-06-21T05:16:14.1730622Z           "evidence": [
2026-06-21T05:16:14.1730842Z             {
2026-06-21T05:16:14.1731077Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T05:16:14.1731377Z               "line": 334
2026-06-21T05:16:14.1731600Z             },
2026-06-21T05:16:14.1731796Z             {
2026-06-21T05:16:14.1732036Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T05:16:14.1732298Z               "line": 344
2026-06-21T05:16:14.1732520Z             },
2026-06-21T05:16:14.1732729Z             {
2026-06-21T05:16:14.1732975Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T05:16:14.1733242Z               "line": 355
2026-06-21T05:16:14.1733466Z             },
2026-06-21T05:16:14.1733668Z             {
2026-06-21T05:16:14.1733905Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T05:16:14.1734191Z               "line": 366
2026-06-21T05:16:14.1734515Z             },
2026-06-21T05:16:14.1734710Z             {
2026-06-21T05:16:14.1734950Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T05:16:14.1735215Z               "line": 378
2026-06-21T05:16:14.1735432Z             },
2026-06-21T05:16:14.1735634Z             {
2026-06-21T05:16:14.1735857Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T05:16:14.1736128Z               "line": 391
2026-06-21T05:16:14.1736343Z             },
2026-06-21T05:16:14.1750907Z             {
2026-06-21T05:16:14.1751234Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T05:16:14.1751534Z               "line": 402
2026-06-21T05:16:14.1751925Z             },
2026-06-21T05:16:14.1752120Z             {
2026-06-21T05:16:14.1752358Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T05:16:14.1752640Z               "line": 419
2026-06-21T05:16:14.1752865Z             },
2026-06-21T05:16:14.1753064Z             {
2026-06-21T05:16:14.1753307Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T05:16:14.1753603Z               "line": 547
2026-06-21T05:16:14.1753830Z             }
2026-06-21T05:16:14.1754028Z           ]
2026-06-21T05:16:14.1754225Z         }
2026-06-21T05:16:14.1754411Z       }
2026-06-21T05:16:14.1754606Z     },
2026-06-21T05:16:14.1754797Z     {
2026-06-21T05:16:14.1755002Z       "id": "REQ-CLI-1",
2026-06-21T05:16:14.1756345Z       "title": "spt endpoint noun namespace: absorbs fork/suspend/wake/shutdown/rename/stop/digest + access (ported 1:1: allow|revoke|open|list, decision 21) + description (ex-resources blurb; bare=show, set=author); merged endpoint list [--local|--subnet <name>] grouped by subnet with SELF pinned, --detail adding the ex-resources yellow-pages blurb projection; bare spt endpoint = the list (M8 decisions 1-2, 25)",
2026-06-21T05:16:14.1757554Z       "requiredStages": [
2026-06-21T05:16:14.1757788Z         "impl",
2026-06-21T05:16:14.1757998Z         "unit"
2026-06-21T05:16:14.1758202Z       ],
2026-06-21T05:16:14.1758427Z       "stages": {
2026-06-21T05:16:14.1777879Z         "doc": {
2026-06-21T05:16:14.1778141Z           "complete": false,
2026-06-21T05:16:14.1778398Z           "evidence": []
2026-06-21T05:16:14.1778622Z         },
2026-06-21T05:16:14.1778827Z         "impl": {
2026-06-21T05:16:14.1779170Z           "complete": true,
2026-06-21T05:16:14.1779466Z           "evidence": [
2026-06-21T05:16:14.1779677Z             {
2026-06-21T05:16:14.1779905Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.1780189Z               "line": 225
2026-06-21T05:16:14.1780409Z             },
2026-06-21T05:16:14.1780595Z             {
2026-06-21T05:16:14.1780824Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.1781111Z               "line": 1093
2026-06-21T05:16:14.1781330Z             },
2026-06-21T05:16:14.1781524Z             {
2026-06-21T05:16:14.1781748Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.1782017Z               "line": 1720
2026-06-21T05:16:14.1782260Z             },
2026-06-21T05:16:14.1782487Z             {
2026-06-21T05:16:14.1782714Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.1782986Z               "line": 3124
2026-06-21T05:16:14.1783209Z             }
2026-06-21T05:16:14.1783409Z           ]
2026-06-21T05:16:14.1783596Z         },
2026-06-21T05:16:14.1783791Z         "int": {
2026-06-21T05:16:14.1784011Z           "complete": false,
2026-06-21T05:16:14.1784254Z           "evidence": []
2026-06-21T05:16:14.1784464Z         },
2026-06-21T05:16:14.1784659Z         "unit": {
2026-06-21T05:16:14.1784870Z           "complete": true,
2026-06-21T05:16:14.1785094Z           "evidence": [
2026-06-21T05:16:14.1785301Z             {
2026-06-21T05:16:14.1785534Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.1785805Z               "line": 7947
2026-06-21T05:16:14.1786023Z             }
2026-06-21T05:16:14.1786225Z           ]
2026-06-21T05:16:14.1786411Z         }
2026-06-21T05:16:14.1786605Z       }
2026-06-21T05:16:14.1786958Z     },
2026-06-21T05:16:14.1787149Z     {
2026-06-21T05:16:14.1787360Z       "id": "REQ-CLI-2",
2026-06-21T05:16:14.1788237Z       "title": "spt daemon noun: run|stop|status (hidden daemon verb becomes daemon run; agent-endpoint shutdown keeps its name under endpoint); daemon status renders the pump heartbeat (last-tick recency) so a half-dead daemon is never rendered implied-healthy (M8 decisions 5, 23)",
2026-06-21T05:16:14.1789249Z       "requiredStages": [
2026-06-21T05:16:14.1789473Z         "impl",
2026-06-21T05:16:14.1789678Z         "unit"
2026-06-21T05:16:14.1789873Z       ],
2026-06-21T05:16:14.1790059Z       "stages": {
2026-06-21T05:16:14.1790393Z         "doc": {
2026-06-21T05:16:14.1790599Z           "complete": false,
2026-06-21T05:16:14.1790835Z           "evidence": []
2026-06-21T05:16:14.1791050Z         },
2026-06-21T05:16:14.1791246Z         "impl": {
2026-06-21T05:16:14.1791459Z           "complete": true,
2026-06-21T05:16:14.1791694Z           "evidence": [
2026-06-21T05:16:14.1791918Z             {
2026-06-21T05:16:14.1792176Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.1792462Z               "line": 414
2026-06-21T05:16:14.1792676Z             },
2026-06-21T05:16:14.1792877Z             {
2026-06-21T05:16:14.1793118Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-21T05:16:14.1793402Z               "line": 97
2026-06-21T05:16:14.1793617Z             },
2026-06-21T05:16:14.1793808Z             {
2026-06-21T05:16:14.1794055Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-21T05:16:14.1794341Z               "line": 256
2026-06-21T05:16:14.1794557Z             },
2026-06-21T05:16:14.1794767Z             {
2026-06-21T05:16:14.1794980Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.1795252Z               "line": 434
2026-06-21T05:16:14.1795467Z             },
2026-06-21T05:16:14.1795678Z             {
2026-06-21T05:16:14.1795909Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.1796193Z               "line": 1174
2026-06-21T05:16:14.1796413Z             },
2026-06-21T05:16:14.1796612Z             {
2026-06-21T05:16:14.1796831Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.1797095Z               "line": 1958
2026-06-21T05:16:14.1797319Z             },
2026-06-21T05:16:14.1797509Z             {
2026-06-21T05:16:14.1797738Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.1797996Z               "line": 2047
2026-06-21T05:16:14.1798216Z             },
2026-06-21T05:16:14.1798414Z             {
2026-06-21T05:16:14.1798638Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.1799018Z               "line": 2108
2026-06-21T05:16:14.1799528Z             }
2026-06-21T05:16:14.1799784Z           ]
2026-06-21T05:16:14.1799995Z         },
2026-06-21T05:16:14.1800192Z         "int": {
2026-06-21T05:16:14.1800419Z           "complete": false,
2026-06-21T05:16:14.1800672Z           "evidence": []
2026-06-21T05:16:14.1800905Z         },
2026-06-21T05:16:14.1801131Z         "unit": {
2026-06-21T05:16:14.1801357Z           "complete": true,
2026-06-21T05:16:14.1801605Z           "evidence": [
2026-06-21T05:16:14.1801830Z             {
2026-06-21T05:16:14.1802078Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-21T05:16:14.1802383Z               "line": 338
2026-06-21T05:16:14.1802606Z             },
2026-06-21T05:16:14.1802803Z             {
2026-06-21T05:16:14.1803027Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.1803298Z               "line": 8102
2026-06-21T05:16:14.1803517Z             }
2026-06-21T05:16:14.1803703Z           ]
2026-06-21T05:16:14.1803900Z         }
2026-06-21T05:16:14.1804096Z       }
2026-06-21T05:16:14.1804286Z     },
2026-06-21T05:16:14.1804473Z     {
2026-06-21T05:16:14.1804669Z       "id": "REQ-CLI-3",
2026-06-21T05:16:14.1805599Z       "title": "Agent hot path stays flat across the M8 reorg: send/ring/ready/whoami/how-to unchanged; notify moves to subnet notify while notif stays top-level; breaking renames land clean with no deprecation shims (zero external CLI consumers pre-spt-claude-code) (M8 decisions 3-4, 9)",
2026-06-21T05:16:14.1806706Z       "requiredStages": [
2026-06-21T05:16:14.1806935Z         "impl",
2026-06-21T05:16:14.1807144Z         "unit"
2026-06-21T05:16:14.1807345Z       ],
2026-06-21T05:16:14.1807541Z       "stages": {
2026-06-21T05:16:14.1807739Z         "doc": {
2026-06-21T05:16:14.1807955Z           "complete": false,
2026-06-21T05:16:14.1808194Z           "evidence": []
2026-06-21T05:16:14.1808417Z         },
2026-06-21T05:16:14.1808617Z         "impl": {
2026-06-21T05:16:14.1808833Z           "complete": true,
2026-06-21T05:16:14.1809272Z           "evidence": [
2026-06-21T05:16:14.1809482Z             {
2026-06-21T05:16:14.1809715Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.1809982Z               "line": 1087
2026-06-21T05:16:14.1810207Z             }
2026-06-21T05:16:14.1810403Z           ]
2026-06-21T05:16:14.1810597Z         },
2026-06-21T05:16:14.1810808Z         "int": {
2026-06-21T05:16:14.1811028Z           "complete": false,
2026-06-21T05:16:14.1811255Z           "evidence": []
2026-06-21T05:16:14.1811479Z         },
2026-06-21T05:16:14.1811676Z         "unit": {
2026-06-21T05:16:14.1811889Z           "complete": true,
2026-06-21T05:16:14.1812119Z           "evidence": [
2026-06-21T05:16:14.1812342Z             {
2026-06-21T05:16:14.1812561Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.1812833Z               "line": 7912
2026-06-21T05:16:14.1813057Z             }
2026-06-21T05:16:14.1813253Z           ]
2026-06-21T05:16:14.1813439Z         }
2026-06-21T05:16:14.1813640Z       }
2026-06-21T05:16:14.1813830Z     },
2026-06-21T05:16:14.1814016Z     {
2026-06-21T05:16:14.1814214Z       "id": "REQ-CLI-4",
2026-06-21T05:16:14.1816597Z       "title": "User-facing CLI output is human-readable: DIRECT-USER commands (e.g. adapter update/list/use) render friendly prose instead of raw CODE:RESULT markers — \"claude-spt is up to date (0.2.0).\" not \"ADAPTER_UPDATE_UPTODATE:claude-spt: installed 0.2.0, latest 0.2.0\". Strictly bounded to the direct-user surface: the adapter-PARSED bringup tokens (SEEDED/BOUND/READY/NO_SEED on seed/listen, which adapters grep) stay machine-parseable — humanization is additive (a human line beside the marker, or a --porcelain/--quiet split), never a silent rename of a dual-contract marker. The user-facing bringup composition belongs to the adapter (perri); this REQ owns only the direct-user CLI surface. (v0.9.0)",
2026-06-21T05:16:14.1818506Z       "requiredStages": [],
2026-06-21T05:16:14.1818730Z       "stages": {
2026-06-21T05:16:14.1818934Z         "doc": {
2026-06-21T05:16:14.1819235Z           "complete": false,
2026-06-21T05:16:14.1819474Z           "evidence": []
2026-06-21T05:16:14.1819691Z         },
2026-06-21T05:16:14.1819885Z         "impl": {
2026-06-21T05:16:14.1820095Z           "complete": true,
2026-06-21T05:16:14.1820338Z           "evidence": [
2026-06-21T05:16:14.1820561Z             {
2026-06-21T05:16:14.1820791Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.1821067Z               "line": 5678
2026-06-21T05:16:14.1821278Z             }
2026-06-21T05:16:14.1821472Z           ]
2026-06-21T05:16:14.1821650Z         },
2026-06-21T05:16:14.1821845Z         "int": {
2026-06-21T05:16:14.1822054Z           "complete": false,
2026-06-21T05:16:14.1822289Z           "evidence": []
2026-06-21T05:16:14.1822501Z         },
2026-06-21T05:16:14.1822693Z         "unit": {
2026-06-21T05:16:14.1822907Z           "complete": false,
2026-06-21T05:16:14.1823135Z           "evidence": []
2026-06-21T05:16:14.1823341Z         }
2026-06-21T05:16:14.1823532Z       }
2026-06-21T05:16:14.1823717Z     },
2026-06-21T05:16:14.1823895Z     {
2026-06-21T05:16:14.1824118Z       "id": "REQ-CLI-HELP-MARKDOWN",
2026-06-21T05:16:14.1827252Z       "title": "`spt --help` (and every subcommand --help) renders the inline Markdown authored in the clap doc-comments as terminal styling, never as literal markers: `**bold**` → ANSI bold, `` `code` `` → ANSI cyan, `[text](url)` → `text`. The markers are STRIPPED either way — a raw `**` or backtick must NEVER reach the user (the operator-reported v0.12.0 defect: help text reads `**ctrl-b**` and stray backticks verbatim). Color/bold escapes are emitted ONLY when the help is going to a real terminal AND color is not suppressed (NO_COLOR unset · CLICOLOR != 0 · CLICOLOR_FORCE forces on); a pipe / redirect / CI / NO_COLOR falls back to strip-only (clean plaintext, zero escapes) so machine-readable help is byte-identical regardless of marker syntax. Pure transform over the clap-rendered help string at the single run()/bare_invocation chokepoint; preserves pre-existing ANSI (CSI sequences passed through untouched), never spans markers across a newline, leaves unmatched/empty markers literal, and does not alter the help layout. (v0.12.1)",
2026-06-21T05:16:14.1830342Z       "requiredStages": [
2026-06-21T05:16:14.1830569Z         "impl",
2026-06-21T05:16:14.1830788Z         "unit"
2026-06-21T05:16:14.1830993Z       ],
2026-06-21T05:16:14.1831184Z       "stages": {
2026-06-21T05:16:14.1831394Z         "doc": {
2026-06-21T05:16:14.1831618Z           "complete": false,
2026-06-21T05:16:14.1831857Z           "evidence": []
2026-06-21T05:16:14.1832075Z         },
2026-06-21T05:16:14.1832276Z         "impl": {
2026-06-21T05:16:14.1832482Z           "complete": true,
2026-06-21T05:16:14.1832710Z           "evidence": [
2026-06-21T05:16:14.1832915Z             {
2026-06-21T05:16:14.1833143Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T05:16:14.1833414Z               "line": 8
2026-06-21T05:16:14.1833628Z             },
2026-06-21T05:16:14.1833830Z             {
2026-06-21T05:16:14.1834063Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T05:16:14.1834330Z               "line": 51
2026-06-21T05:16:14.1834544Z             },
2026-06-21T05:16:14.1834741Z             {
2026-06-21T05:16:14.1834964Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T05:16:14.1835230Z               "line": 82
2026-06-21T05:16:14.1835453Z             },
2026-06-21T05:16:14.1835647Z             {
2026-06-21T05:16:14.1835876Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T05:16:14.1836143Z               "line": 229
2026-06-21T05:16:14.1836354Z             }
2026-06-21T05:16:14.1836553Z           ]
2026-06-21T05:16:14.1836744Z         },
2026-06-21T05:16:14.1836940Z         "int": {
2026-06-21T05:16:14.1837159Z           "complete": false,
2026-06-21T05:16:14.1837397Z           "evidence": []
2026-06-21T05:16:14.1837618Z         },
2026-06-21T05:16:14.1837817Z         "unit": {
2026-06-21T05:16:14.1838036Z           "complete": true,
2026-06-21T05:16:14.1838264Z           "evidence": [
2026-06-21T05:16:14.1838476Z             {
2026-06-21T05:16:14.1838715Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T05:16:14.1839082Z               "line": 249
2026-06-21T05:16:14.1839307Z             },
2026-06-21T05:16:14.1839516Z             {
2026-06-21T05:16:14.1839754Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T05:16:14.1840021Z               "line": 256
2026-06-21T05:16:14.1840237Z             },
2026-06-21T05:16:14.1840432Z             {
2026-06-21T05:16:14.1840659Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T05:16:14.1840930Z               "line": 263
2026-06-21T05:16:14.1841148Z             },
2026-06-21T05:16:14.1841348Z             {
2026-06-21T05:16:14.1841568Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T05:16:14.1841830Z               "line": 270
2026-06-21T05:16:14.1842049Z             },
2026-06-21T05:16:14.1842240Z             {
2026-06-21T05:16:14.1842474Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T05:16:14.1842732Z               "line": 297
2026-06-21T05:16:14.1842950Z             },
2026-06-21T05:16:14.1843146Z             {
2026-06-21T05:16:14.1843367Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T05:16:14.1843626Z               "line": 307
2026-06-21T05:16:14.1843960Z             },
2026-06-21T05:16:14.1844156Z             {
2026-06-21T05:16:14.1844386Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T05:16:14.1844652Z               "line": 317
2026-06-21T05:16:14.1844870Z             },
2026-06-21T05:16:14.1845062Z             {
2026-06-21T05:16:14.1845296Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T05:16:14.1845562Z               "line": 331
2026-06-21T05:16:14.1845776Z             },
2026-06-21T05:16:14.1845991Z             {
2026-06-21T05:16:14.1846222Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T05:16:14.1846489Z               "line": 340
2026-06-21T05:16:14.1846813Z             },
2026-06-21T05:16:14.1847004Z             {
2026-06-21T05:16:14.1847224Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T05:16:14.1847490Z               "line": 348
2026-06-21T05:16:14.1847709Z             }
2026-06-21T05:16:14.1847906Z           ]
2026-06-21T05:16:14.1848100Z         }
2026-06-21T05:16:14.1848295Z       }
2026-06-21T05:16:14.1848483Z     },
2026-06-21T05:16:14.1848667Z     {
2026-06-21T05:16:14.1848881Z       "id": "REQ-CLI-OUTPUT-MARKDOWN",
2026-06-21T05:16:14.1856897Z       "title": "Human-prose COMMAND OUTPUT (not just `--help`) renders the inline Markdown authored in its source strings as terminal styling, never literal markers: `` `code` `` → ANSI cyan, `**bold**` → ANSI bold, `[text](url)` → `text`, markers STRIPPED either way. REQ-CLI-HELP-MARKDOWN only hooked the clap `--help` chokepoint, so command output still printed raw Markdown (audit: `spt how-to` topic text showed `# headers`/backticks, `spt subnet`/`subnet status` hint footers showed stray backticks, the daemon-status `not running` line, the `ENDPOINT_RUN_STARTED` attach hint, and the daemon's `SUBNET_DETACHED` startup line — 13 prose surfaces). The same line-bounded pure `helpfmt::render` is applied at each emit site, color-gated by the OUTPUT STREAM's own tty (`stdout_color` for print/println, the new `stderr_color` for eprintln). HARNESS-SAFETY (binding): color is tty-gated, so an adapter (piped / non-tty / NO_COLOR) gets STRIP mode = zero ANSI + markers removed; every dual-contract MACHINE token on a rendered line (`ENDPOINT_RUN_STARTED:`, `NO_SUCH_TOPIC:`, `SUBNET_DETACHED:`) carries NO Markdown markers, so it survives strip byte-intact — the adapter parse is never perturbed. Pure-machine output (the `<EVENT …>` envelope, bringup parse-tokens SEEDED/BOUND/READY/NO_SEED, `--json`, QR) is NEVER routed through the renderer. The one spt-daemon source string (`SUBNET_DETACHED`, the bin-local renderer is unreachable from the daemon crate) is authored marker-free instead. (v0.12.2)",
2026-06-21T05:16:14.1860956Z       "requiredStages": [
2026-06-21T05:16:14.1861194Z         "impl",
2026-06-21T05:16:14.1861404Z         "unit"
2026-06-21T05:16:14.1861596Z       ],
2026-06-21T05:16:14.1861794Z       "stages": {
2026-06-21T05:16:14.1862003Z         "doc": {
2026-06-21T05:16:14.1862211Z           "complete": false,
2026-06-21T05:16:14.1862454Z           "evidence": []
2026-06-21T05:16:14.1862679Z         },
2026-06-21T05:16:14.1862879Z         "impl": {
2026-06-21T05:16:14.1863103Z           "complete": true,
2026-06-21T05:16:14.1863337Z           "evidence": [
2026-06-21T05:16:14.1863552Z             {
2026-06-21T05:16:14.1863789Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.1864071Z               "line": 141
2026-06-21T05:16:14.1864304Z             },
2026-06-21T05:16:14.1864511Z             {
2026-06-21T05:16:14.1864722Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.1865009Z               "line": 1376
2026-06-21T05:16:14.1865238Z             },
2026-06-21T05:16:14.1865444Z             {
2026-06-21T05:16:14.1865671Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.1865939Z               "line": 2145
2026-06-21T05:16:14.1866164Z             },
2026-06-21T05:16:14.1866359Z             {
2026-06-21T05:16:14.1866582Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.1867005Z               "line": 4368
2026-06-21T05:16:14.1867223Z             },
2026-06-21T05:16:14.1867419Z             {
2026-06-21T05:16:14.1867642Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.1867904Z               "line": 4466
2026-06-21T05:16:14.1868119Z             },
2026-06-21T05:16:14.1868316Z             {
2026-06-21T05:16:14.1868533Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.1868792Z               "line": 5257
2026-06-21T05:16:14.1869078Z             },
2026-06-21T05:16:14.1869275Z             {
2026-06-21T05:16:14.1869507Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T05:16:14.1869877Z               "line": 39
2026-06-21T05:16:14.1870090Z             }
2026-06-21T05:16:14.1870286Z           ]
2026-06-21T05:16:14.1870481Z         },
2026-06-21T05:16:14.1870672Z         "int": {
2026-06-21T05:16:14.1870882Z           "complete": false,
2026-06-21T05:16:14.1871115Z           "evidence": []
2026-06-21T05:16:14.1871334Z         },
2026-06-21T05:16:14.1871536Z         "unit": {
2026-06-21T05:16:14.1871754Z           "complete": true,
2026-06-21T05:16:14.1871978Z           "evidence": [
2026-06-21T05:16:14.1872194Z             {
2026-06-21T05:16:14.1872406Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.1872671Z               "line": 10272
2026-06-21T05:16:14.1872896Z             },
2026-06-21T05:16:14.1873086Z             {
2026-06-21T05:16:14.1873314Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T05:16:14.1873591Z               "line": 281
2026-06-21T05:16:14.1881375Z             },
2026-06-21T05:16:14.1881637Z             {
2026-06-21T05:16:14.1881885Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T05:16:14.1882186Z               "line": 358
2026-06-21T05:16:14.1882415Z             },
2026-06-21T05:16:14.1882615Z             {
2026-06-21T05:16:14.1882843Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T05:16:14.1883124Z               "line": 381
2026-06-21T05:16:14.1883346Z             },
2026-06-21T05:16:14.1883546Z             {
2026-06-21T05:16:14.1883780Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-21T05:16:14.1884057Z               "line": 395
2026-06-21T05:16:14.1884275Z             }
2026-06-21T05:16:14.1884476Z           ]
2026-06-21T05:16:14.1884673Z         }
2026-06-21T05:16:14.1884867Z       }
2026-06-21T05:16:14.1885057Z     },
2026-06-21T05:16:14.1885249Z     {
2026-06-21T05:16:14.1885448Z       "id": "REQ-CONSENT-1",
2026-06-21T05:16:14.1886535Z       "title": "Consent grant store: capability x subject-agent x target-node rows, enforced at the target node, subnet-settable (replicates as security material near the trust store), revocable; gated-capability ids (remote-exec, instantiate-anywhere) reserved-but-refusing; v1 consumers are the shell spawn gates (CONTEXT Consent & security gates)",
2026-06-21T05:16:14.1887580Z       "requiredStages": [
2026-06-21T05:16:14.1887818Z         "impl",
2026-06-21T05:16:14.1888017Z         "unit"
2026-06-21T05:16:14.1888221Z       ],
2026-06-21T05:16:14.1888419Z       "stages": {
2026-06-21T05:16:14.1888625Z         "doc": {
2026-06-21T05:16:14.1888839Z           "complete": false,
2026-06-21T05:16:14.1889140Z           "evidence": []
2026-06-21T05:16:14.1889363Z         },
2026-06-21T05:16:14.1889559Z         "impl": {
2026-06-21T05:16:14.1889775Z           "complete": true,
2026-06-21T05:16:14.1890002Z           "evidence": [
2026-06-21T05:16:14.1890203Z             {
2026-06-21T05:16:14.1890447Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T05:16:14.1890734Z               "line": 27
2026-06-21T05:16:14.1890946Z             },
2026-06-21T05:16:14.1891145Z             {
2026-06-21T05:16:14.1891373Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T05:16:14.1891653Z               "line": 75
2026-06-21T05:16:14.1891868Z             },
2026-06-21T05:16:14.1892065Z             {
2026-06-21T05:16:14.1892297Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T05:16:14.1892741Z               "line": 98
2026-06-21T05:16:14.1892957Z             },
2026-06-21T05:16:14.1893156Z             {
2026-06-21T05:16:14.1893390Z               "path": "crates/spt-store/src/grants.rs",
2026-06-21T05:16:14.1893665Z               "line": 82
2026-06-21T05:16:14.1893881Z             },
2026-06-21T05:16:14.1894078Z             {
2026-06-21T05:16:14.1894302Z               "path": "crates/spt-store/src/grants.rs",
2026-06-21T05:16:14.1894584Z               "line": 109
2026-06-21T05:16:14.1894797Z             },
2026-06-21T05:16:14.1894988Z             {
2026-06-21T05:16:14.1895218Z               "path": "crates/spt-store/src/grants.rs",
2026-06-21T05:16:14.1895590Z               "line": 127
2026-06-21T05:16:14.1895814Z             },
2026-06-21T05:16:14.1896018Z             {
2026-06-21T05:16:14.1896238Z               "path": "crates/spt-store/src/grants.rs",
2026-06-21T05:16:14.1896513Z               "line": 142
2026-06-21T05:16:14.1896732Z             },
2026-06-21T05:16:14.1896938Z             {
2026-06-21T05:16:14.1897148Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.1897415Z               "line": 7048
2026-06-21T05:16:14.1897638Z             }
2026-06-21T05:16:14.1897867Z           ]
2026-06-21T05:16:14.1898059Z         },
2026-06-21T05:16:14.1898253Z         "int": {
2026-06-21T05:16:14.1898469Z           "complete": false,
2026-06-21T05:16:14.1898700Z           "evidence": []
2026-06-21T05:16:14.1898913Z         },
2026-06-21T05:16:14.1899171Z         "unit": {
2026-06-21T05:16:14.1899395Z           "complete": true,
2026-06-21T05:16:14.1899623Z           "evidence": [
2026-06-21T05:16:14.1899838Z             {
2026-06-21T05:16:14.1900077Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T05:16:14.1900354Z               "line": 334
2026-06-21T05:16:14.1900572Z             },
2026-06-21T05:16:14.1900753Z             {
2026-06-21T05:16:14.1900984Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T05:16:14.1901255Z               "line": 380
2026-06-21T05:16:14.1901482Z             },
2026-06-21T05:16:14.1901677Z             {
2026-06-21T05:16:14.1901914Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T05:16:14.1902180Z               "line": 391
2026-06-21T05:16:14.1902396Z             },
2026-06-21T05:16:14.1902591Z             {
2026-06-21T05:16:14.1902819Z               "path": "crates/spt-store/src/grants.rs",
2026-06-21T05:16:14.1903096Z               "line": 165
2026-06-21T05:16:14.1903316Z             },
2026-06-21T05:16:14.1903507Z             {
2026-06-21T05:16:14.1903735Z               "path": "crates/spt-store/src/grants.rs",
2026-06-21T05:16:14.1904011Z               "line": 184
2026-06-21T05:16:14.1904230Z             },
2026-06-21T05:16:14.1904423Z             {
2026-06-21T05:16:14.1904643Z               "path": "crates/spt-store/src/grants.rs",
2026-06-21T05:16:14.1904909Z               "line": 204
2026-06-21T05:16:14.1905134Z             },
2026-06-21T05:16:14.1905324Z             {
2026-06-21T05:16:14.1905548Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.1905817Z               "line": 8334
2026-06-21T05:16:14.1906039Z             }
2026-06-21T05:16:14.1906234Z           ]
2026-06-21T05:16:14.1906422Z         }
2026-06-21T05:16:14.1906611Z       }
2026-06-21T05:16:14.1906790Z     },
2026-06-21T05:16:14.1906968Z     {
2026-06-21T05:16:14.1907169Z       "id": "REQ-CONSENT-2",
2026-06-21T05:16:14.1908170Z       "title": "Interactive consent escalation: an ungated high-risk action routes a consent prompt to the user's most-recently-active session; allow-once / allow-always (writes a grant) / deny; pre-consent flags (can_shutdown, shell_wake_spawn_anywhere) author grants via manifest/settings (CONTEXT Consent & security gates)",
2026-06-21T05:16:14.1909198Z       "requiredStages": [
2026-06-21T05:16:14.1909426Z         "impl",
2026-06-21T05:16:14.1909621Z         "unit"
2026-06-21T05:16:14.1909811Z       ],
2026-06-21T05:16:14.1910013Z       "stages": {
2026-06-21T05:16:14.1910322Z         "doc": {
2026-06-21T05:16:14.1910537Z           "complete": false,
2026-06-21T05:16:14.1910760Z           "evidence": []
2026-06-21T05:16:14.1910980Z         },
2026-06-21T05:16:14.1911176Z         "impl": {
2026-06-21T05:16:14.1911390Z           "complete": true,
2026-06-21T05:16:14.1911619Z           "evidence": [
2026-06-21T05:16:14.1911829Z             {
2026-06-21T05:16:14.1912066Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T05:16:14.1912345Z               "line": 140
2026-06-21T05:16:14.1912565Z             },
2026-06-21T05:16:14.1912755Z             {
2026-06-21T05:16:14.1912984Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T05:16:14.1913360Z               "line": 165
2026-06-21T05:16:14.1913570Z             },
2026-06-21T05:16:14.1913767Z             {
2026-06-21T05:16:14.1914004Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T05:16:14.1914281Z               "line": 199
2026-06-21T05:16:14.1914496Z             },
2026-06-21T05:16:14.1914699Z             {
2026-06-21T05:16:14.1914935Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T05:16:14.1915208Z               "line": 241
2026-06-21T05:16:14.1915428Z             },
2026-06-21T05:16:14.1915622Z             {
2026-06-21T05:16:14.1915852Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T05:16:14.1916141Z               "line": 269
2026-06-21T05:16:14.1916362Z             },
2026-06-21T05:16:14.1916556Z             {
2026-06-21T05:16:14.1916794Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T05:16:14.1917067Z               "line": 300
2026-06-21T05:16:14.1917273Z             },
2026-06-21T05:16:14.1917471Z             {
2026-06-21T05:16:14.1917696Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.1917968Z               "line": 6839
2026-06-21T05:16:14.1918181Z             },
2026-06-21T05:16:14.1918378Z             {
2026-06-21T05:16:14.1918597Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.1918869Z               "line": 6897
2026-06-21T05:16:14.1919164Z             }
2026-06-21T05:16:14.1919359Z           ]
2026-06-21T05:16:14.1919542Z         },
2026-06-21T05:16:14.1919735Z         "int": {
2026-06-21T05:16:14.1919958Z           "complete": false,
2026-06-21T05:16:14.1920186Z           "evidence": []
2026-06-21T05:16:14.1920405Z         },
2026-06-21T05:16:14.1920601Z         "unit": {
2026-06-21T05:16:14.1920811Z           "complete": true,
2026-06-21T05:16:14.1921044Z           "evidence": [
2026-06-21T05:16:14.1921273Z             {
2026-06-21T05:16:14.1921512Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T05:16:14.1921789Z               "line": 419
2026-06-21T05:16:14.1922012Z             },
2026-06-21T05:16:14.1922198Z             {
2026-06-21T05:16:14.1922438Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T05:16:14.1922731Z               "line": 436
2026-06-21T05:16:14.1922952Z             },
2026-06-21T05:16:14.1923154Z             {
2026-06-21T05:16:14.1923401Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T05:16:14.1923673Z               "line": 472
2026-06-21T05:16:14.1923906Z             },
2026-06-21T05:16:14.1924097Z             {
2026-06-21T05:16:14.1924317Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T05:16:14.1924588Z               "line": 516
2026-06-21T05:16:14.1924793Z             },
2026-06-21T05:16:14.1924990Z             {
2026-06-21T05:16:14.1925221Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.1925481Z               "line": 9614
2026-06-21T05:16:14.1925706Z             },
2026-06-21T05:16:14.1925891Z             {
2026-06-21T05:16:14.1926115Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.1926388Z               "line": 9696
2026-06-21T05:16:14.1926607Z             }
2026-06-21T05:16:14.1926797Z           ]
2026-06-21T05:16:14.1926984Z         }
2026-06-21T05:16:14.1927174Z       }
2026-06-21T05:16:14.1927359Z     },
2026-06-21T05:16:14.1927679Z     {
2026-06-21T05:16:14.1927881Z       "id": "REQ-CONSENT-3",
2026-06-21T05:16:14.1929986Z       "title": "Per-capability approval gates (class-keyed): the require_approval enum may ride INDIVIDUAL [shell.capabilities] entries — gating the dangerous ACT, not just the spawn — with an optional class_key scoping the grant qualifier finer than the capability id ((owner endpoint x device class x node); a remembered HID-class attach grant never authorizes a storage-class attach). Reuses the grant store + interactive escalation + tighten-only floor (REQ-CONSENT-1/2 plumbing). Spawn gates govern EXISTENCE; capability gates govern ACTS — an explicitly distinct invariant (CONTEXT:283, ratified 2026-06-11 Gateway grill).",
2026-06-21T05:16:14.1931814Z       "requiredStages": [
2026-06-21T05:16:14.1932039Z         "doc",
2026-06-21T05:16:14.1932243Z         "impl",
2026-06-21T05:16:14.1932443Z         "unit",
2026-06-21T05:16:14.1932645Z         "int"
2026-06-21T05:16:14.1932839Z       ],
2026-06-21T05:16:14.1933040Z       "stages": {
2026-06-21T05:16:14.1933243Z         "doc": {
2026-06-21T05:16:14.1933460Z           "complete": true,
2026-06-21T05:16:14.1933700Z           "evidence": [
2026-06-21T05:16:14.1933913Z             {
2026-06-21T05:16:14.1934128Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.1934376Z               "line": 304
2026-06-21T05:16:14.1934592Z             }
2026-06-21T05:16:14.1934791Z           ]
2026-06-21T05:16:14.1934982Z         },
2026-06-21T05:16:14.1935182Z         "impl": {
2026-06-21T05:16:14.1935401Z           "complete": true,
2026-06-21T05:16:14.1935635Z           "evidence": [
2026-06-21T05:16:14.1935848Z             {
2026-06-21T05:16:14.1936093Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T05:16:14.1936384Z               "line": 123
2026-06-21T05:16:14.1936604Z             },
2026-06-21T05:16:14.1936790Z             {
2026-06-21T05:16:14.1937028Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T05:16:14.1937319Z               "line": 162
2026-06-21T05:16:14.1937544Z             },
2026-06-21T05:16:14.1937730Z             {
2026-06-21T05:16:14.1937963Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T05:16:14.1938249Z               "line": 291
2026-06-21T05:16:14.1938455Z             },
2026-06-21T05:16:14.1938653Z             {
2026-06-21T05:16:14.1938897Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.1939249Z               "line": 574
2026-06-21T05:16:14.1939474Z             },
2026-06-21T05:16:14.1939659Z             {
2026-06-21T05:16:14.1939902Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.1940189Z               "line": 824
2026-06-21T05:16:14.1940414Z             },
2026-06-21T05:16:14.1940604Z             {
2026-06-21T05:16:14.1940822Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.1941088Z               "line": 6965
2026-06-21T05:16:14.1941316Z             }
2026-06-21T05:16:14.1941506Z           ]
2026-06-21T05:16:14.1941702Z         },
2026-06-21T05:16:14.1941897Z         "int": {
2026-06-21T05:16:14.1942111Z           "complete": true,
2026-06-21T05:16:14.1942345Z           "evidence": [
2026-06-21T05:16:14.1942556Z             {
2026-06-21T05:16:14.1942813Z               "path": "crates/spt/tests/shell_actgate_e2e.rs",
2026-06-21T05:16:14.1943098Z               "line": 16
2026-06-21T05:16:14.1943318Z             }
2026-06-21T05:16:14.1943515Z           ]
2026-06-21T05:16:14.1943699Z         },
2026-06-21T05:16:14.1943894Z         "unit": {
2026-06-21T05:16:14.1944110Z           "complete": true,
2026-06-21T05:16:14.1944345Z           "evidence": [
2026-06-21T05:16:14.1944550Z             {
2026-06-21T05:16:14.1944798Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T05:16:14.1945079Z               "line": 1019
2026-06-21T05:16:14.1945298Z             },
2026-06-21T05:16:14.1945495Z             {
2026-06-21T05:16:14.1945723Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T05:16:14.1946125Z               "line": 1066
2026-06-21T05:16:14.1946346Z             },
2026-06-21T05:16:14.1946540Z             {
2026-06-21T05:16:14.1946769Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.1947055Z               "line": 1394
2026-06-21T05:16:14.1947278Z             }
2026-06-21T05:16:14.1947470Z           ]
2026-06-21T05:16:14.1947660Z         }
2026-06-21T05:16:14.1947841Z       }
2026-06-21T05:16:14.1948029Z     },
2026-06-21T05:16:14.1948208Z     {
2026-06-21T05:16:14.1948418Z       "id": "REQ-CONV-1",
2026-06-21T05:16:14.1950006Z       "title": "Peer address seeding, both cold starts: durable peer-addrs.json (identity dir) maps peer pubkey → last-known dialable address; the pump's resolver consults it FIRST with id-only discovery fallback on miss or dial failure (a stale addr never strands a peer); written by the pairing ceremony (both sides, from the live connection) and by the pump on successful connect; post-join first sync and post-restart resync converge in seconds, not ~1 min (M8 decisions 14, 20)",
2026-06-21T05:16:14.1951439Z       "requiredStages": [
2026-06-21T05:16:14.1951657Z         "impl",
2026-06-21T05:16:14.1951857Z         "unit"
2026-06-21T05:16:14.1952056Z       ],
2026-06-21T05:16:14.1952243Z       "stages": {
2026-06-21T05:16:14.1952438Z         "doc": {
2026-06-21T05:16:14.1952648Z           "complete": false,
2026-06-21T05:16:14.1952882Z           "evidence": []
2026-06-21T05:16:14.1953096Z         },
2026-06-21T05:16:14.1953292Z         "impl": {
2026-06-21T05:16:14.1953508Z           "complete": true,
2026-06-21T05:16:14.1953736Z           "evidence": [
2026-06-21T05:16:14.1953945Z             {
2026-06-21T05:16:14.1954203Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T05:16:14.1954487Z               "line": 938
2026-06-21T05:16:14.1954715Z             },
2026-06-21T05:16:14.1954909Z             {
2026-06-21T05:16:14.1955153Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T05:16:14.1955444Z               "line": 94
2026-06-21T05:16:14.1955649Z             },
2026-06-21T05:16:14.1955845Z             {
2026-06-21T05:16:14.1956083Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T05:16:14.1956365Z               "line": 345
2026-06-21T05:16:14.1956588Z             },
2026-06-21T05:16:14.1956778Z             {
2026-06-21T05:16:14.1957016Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T05:16:14.1957290Z               "line": 387
2026-06-21T05:16:14.1957500Z             },
2026-06-21T05:16:14.1957687Z             {
2026-06-21T05:16:14.1957925Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T05:16:14.1958216Z               "line": 472
2026-06-21T05:16:14.1958430Z             },
2026-06-21T05:16:14.1958626Z             {
2026-06-21T05:16:14.1958865Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T05:16:14.1959208Z               "line": 667
2026-06-21T05:16:14.1959427Z             },
2026-06-21T05:16:14.1959622Z             {
2026-06-21T05:16:14.1959855Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T05:16:14.1960131Z               "line": 693
2026-06-21T05:16:14.1960346Z             },
2026-06-21T05:16:14.1960542Z             {
2026-06-21T05:16:14.1960775Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T05:16:14.1961051Z               "line": 369
2026-06-21T05:16:14.1961271Z             },
2026-06-21T05:16:14.1961468Z             {
2026-06-21T05:16:14.1961700Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-21T05:16:14.1961975Z               "line": 19
2026-06-21T05:16:14.1962194Z             }
2026-06-21T05:16:14.1962398Z           ]
2026-06-21T05:16:14.1962574Z         },
2026-06-21T05:16:14.1962775Z         "int": {
2026-06-21T05:16:14.1962988Z           "complete": false,
2026-06-21T05:16:14.1963222Z           "evidence": []
2026-06-21T05:16:14.1963433Z         },
2026-06-21T05:16:14.1963618Z         "unit": {
2026-06-21T05:16:14.1963833Z           "complete": true,
2026-06-21T05:16:14.1964186Z           "evidence": [
2026-06-21T05:16:14.1964415Z             {
2026-06-21T05:16:14.2019649Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T05:16:14.2020243Z               "line": 1263
2026-06-21T05:16:14.2020489Z             },
2026-06-21T05:16:14.2020709Z             {
2026-06-21T05:16:14.2020961Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-21T05:16:14.2021252Z               "line": 108
2026-06-21T05:16:14.2021481Z             },
2026-06-21T05:16:14.2021681Z             {
2026-06-21T05:16:14.2021925Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-21T05:16:14.2022531Z               "line": 134
2026-06-21T05:16:14.2022739Z             },
2026-06-21T05:16:14.2022931Z             {
2026-06-21T05:16:14.2023172Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-21T05:16:14.2023468Z               "line": 144
2026-06-21T05:16:14.2023688Z             }
2026-06-21T05:16:14.2023889Z           ]
2026-06-21T05:16:14.2024078Z         }
2026-06-21T05:16:14.2024288Z       }
2026-06-21T05:16:14.2024475Z     },
2026-06-21T05:16:14.2024666Z     {
2026-06-21T05:16:14.2024866Z       "id": "REQ-CONV-2",
2026-06-21T05:16:14.2026268Z       "title": "Event-driven advertisement: endpoint online/offline transitions (ready-listener start/stop, rest-state transition, perch death) trigger an immediate advertise_local + peer push as a WAKE of the existing pump loop (no second advertisement path — epoch lease + visibility gates ride unchanged); the cadence stays the steady-state floor (M8 decision 15)",
2026-06-21T05:16:14.2027352Z       "requiredStages": [
2026-06-21T05:16:14.2027603Z         "impl",
2026-06-21T05:16:14.2027818Z         "unit"
2026-06-21T05:16:14.2028010Z       ],
2026-06-21T05:16:14.2028204Z       "stages": {
2026-06-21T05:16:14.2028404Z         "doc": {
2026-06-21T05:16:14.2028616Z           "complete": false,
2026-06-21T05:16:14.2028859Z           "evidence": []
2026-06-21T05:16:14.2029183Z         },
2026-06-21T05:16:14.2029393Z         "impl": {
2026-06-21T05:16:14.2029608Z           "complete": true,
2026-06-21T05:16:14.2029846Z           "evidence": [
2026-06-21T05:16:14.2030065Z             {
2026-06-21T05:16:14.2030314Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.2030611Z               "line": 409
2026-06-21T05:16:14.2030836Z             },
2026-06-21T05:16:14.2031035Z             {
2026-06-21T05:16:14.2031284Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-21T05:16:14.2031574Z               "line": 119
2026-06-21T05:16:14.2031797Z             },
2026-06-21T05:16:14.2031998Z             {
2026-06-21T05:16:14.2032251Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.2032542Z               "line": 841
2026-06-21T05:16:14.2032746Z             },
2026-06-21T05:16:14.2032947Z             {
2026-06-21T05:16:14.2033200Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.2033487Z               "line": 852
2026-06-21T05:16:14.2033708Z             },
2026-06-21T05:16:14.2033905Z             {
2026-06-21T05:16:14.2034134Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T05:16:14.2034406Z               "line": 334
2026-06-21T05:16:14.2034619Z             },
2026-06-21T05:16:14.2034820Z             {
2026-06-21T05:16:14.2035040Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2035306Z               "line": 3074
2026-06-21T05:16:14.2035520Z             },
2026-06-21T05:16:14.2035713Z             {
2026-06-21T05:16:14.2035930Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2036194Z               "line": 3090
2026-06-21T05:16:14.2036419Z             },
2026-06-21T05:16:14.2036619Z             {
2026-06-21T05:16:14.2036833Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2037096Z               "line": 3170
2026-06-21T05:16:14.2037321Z             }
2026-06-21T05:16:14.2037519Z           ]
2026-06-21T05:16:14.2037854Z         },
2026-06-21T05:16:14.2038054Z         "int": {
2026-06-21T05:16:14.2038265Z           "complete": false,
2026-06-21T05:16:14.2038498Z           "evidence": []
2026-06-21T05:16:14.2038716Z         },
2026-06-21T05:16:14.2038911Z         "unit": {
2026-06-21T05:16:14.2039205Z           "complete": true,
2026-06-21T05:16:14.2039433Z           "evidence": [
2026-06-21T05:16:14.2039654Z             {
2026-06-21T05:16:14.2039888Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T05:16:14.2040164Z               "line": 889
2026-06-21T05:16:14.2040387Z             },
2026-06-21T05:16:14.2040583Z             {
2026-06-21T05:16:14.2040822Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T05:16:14.2041208Z               "line": 1014
2026-06-21T05:16:14.2041431Z             },
2026-06-21T05:16:14.2041633Z             {
2026-06-21T05:16:14.2041882Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-21T05:16:14.2042177Z               "line": 215
2026-06-21T05:16:14.2042406Z             }
2026-06-21T05:16:14.2042601Z           ]
2026-06-21T05:16:14.2042792Z         }
2026-06-21T05:16:14.2042987Z       }
2026-06-21T05:16:14.2043183Z     },
2026-06-21T05:16:14.2043370Z     {
2026-06-21T05:16:14.2043578Z       "id": "REQ-DAEMON-1",
2026-06-21T05:16:14.2043889Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-21T05:16:14.2044226Z       "requiredStages": [
2026-06-21T05:16:14.2044442Z         "impl",
2026-06-21T05:16:14.2044636Z         "unit",
2026-06-21T05:16:14.2044846Z         "int"
2026-06-21T05:16:14.2045042Z       ],
2026-06-21T05:16:14.2045237Z       "stages": {
2026-06-21T05:16:14.2045457Z         "doc": {
2026-06-21T05:16:14.2045671Z           "complete": false,
2026-06-21T05:16:14.2045910Z           "evidence": []
2026-06-21T05:16:14.2046129Z         },
2026-06-21T05:16:14.2046329Z         "impl": {
2026-06-21T05:16:14.2046547Z           "complete": true,
2026-06-21T05:16:14.2046783Z           "evidence": [
2026-06-21T05:16:14.2046999Z             {
2026-06-21T05:16:14.2047246Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2047542Z               "line": 229
2026-06-21T05:16:14.2047760Z             },
2026-06-21T05:16:14.2047961Z             {
2026-06-21T05:16:14.2048200Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-21T05:16:14.2048477Z               "line": 12
2026-06-21T05:16:14.2048691Z             },
2026-06-21T05:16:14.2048892Z             {
2026-06-21T05:16:14.2049202Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.2049490Z               "line": 16
2026-06-21T05:16:14.2049712Z             },
2026-06-21T05:16:14.2049918Z             {
2026-06-21T05:16:14.2050157Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.2050438Z               "line": 309
2026-06-21T05:16:14.2050661Z             },
2026-06-21T05:16:14.2050856Z             {
2026-06-21T05:16:14.2051101Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2051401Z               "line": 24
2026-06-21T05:16:14.2051615Z             },
2026-06-21T05:16:14.2051810Z             {
2026-06-21T05:16:14.2052043Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2052317Z               "line": 262
2026-06-21T05:16:14.2052531Z             },
2026-06-21T05:16:14.2052723Z             {
2026-06-21T05:16:14.2052961Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2053237Z               "line": 279
2026-06-21T05:16:14.2053452Z             },
2026-06-21T05:16:14.2053635Z             {
2026-06-21T05:16:14.2053876Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2054153Z               "line": 356
2026-06-21T05:16:14.2054367Z             },
2026-06-21T05:16:14.2054564Z             {
2026-06-21T05:16:14.2054805Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2055086Z               "line": 670
2026-06-21T05:16:14.2055302Z             },
2026-06-21T05:16:14.2055607Z             {
2026-06-21T05:16:14.2055845Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-21T05:16:14.2056121Z               "line": 15
2026-06-21T05:16:14.2056336Z             },
2026-06-21T05:16:14.2056532Z             {
2026-06-21T05:16:14.2056770Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T05:16:14.2057040Z               "line": 241
2026-06-21T05:16:14.2057263Z             },
2026-06-21T05:16:14.2057468Z             {
2026-06-21T05:16:14.2057705Z               "path": "crates/spt/src/api/live.rs",
2026-06-21T05:16:14.2057982Z               "line": 13
2026-06-21T05:16:14.2058202Z             },
2026-06-21T05:16:14.2058507Z             {
2026-06-21T05:16:14.2058746Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.2059080Z               "line": 382
2026-06-21T05:16:14.2059303Z             },
2026-06-21T05:16:14.2059518Z             {
2026-06-21T05:16:14.2059748Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.2060027Z               "line": 494
2026-06-21T05:16:14.2060243Z             }
2026-06-21T05:16:14.2060440Z           ]
2026-06-21T05:16:14.2060645Z         },
2026-06-21T05:16:14.2060849Z         "int": {
2026-06-21T05:16:14.2061060Z           "complete": true,
2026-06-21T05:16:14.2061303Z           "evidence": [
2026-06-21T05:16:14.2061521Z             {
2026-06-21T05:16:14.2061817Z               "path": "crates/spt-daemon/tests/daemon_lifecycle_real_brain.rs",
2026-06-21T05:16:14.2062151Z               "line": 2
2026-06-21T05:16:14.2062366Z             },
2026-06-21T05:16:14.2062570Z             {
2026-06-21T05:16:14.2062853Z               "path": "crates/spt-daemon/tests/daemon_lifecycle_real_brain.rs",
2026-06-21T05:16:14.2063182Z               "line": 16
2026-06-21T05:16:14.2063411Z             },
2026-06-21T05:16:14.2063607Z             {
2026-06-21T05:16:14.2063870Z               "path": "crates/spt/tests/live_bind_firsthost_e2e.rs",
2026-06-21T05:16:14.2064175Z               "line": 12
2026-06-21T05:16:14.2064389Z             },
2026-06-21T05:16:14.2064670Z             {
2026-06-21T05:16:14.2065134Z               "path": "crates/spt/tests/live_firsthost_e2e.rs",
2026-06-21T05:16:14.2065528Z               "line": 12
2026-06-21T05:16:14.2065833Z             },
2026-06-21T05:16:14.2066171Z             {
2026-06-21T05:16:14.2066538Z               "path": "crates/spt/tests/livehost_bootrace_e2e.rs",
2026-06-21T05:16:14.2066982Z               "line": 44
2026-06-21T05:16:14.2067301Z             }
2026-06-21T05:16:14.2067600Z           ]
2026-06-21T05:16:14.2067917Z         },
2026-06-21T05:16:14.2068218Z         "unit": {
2026-06-21T05:16:14.2068514Z           "complete": true,
2026-06-21T05:16:14.2068871Z           "evidence": [
2026-06-21T05:16:14.2069725Z             {
2026-06-21T05:16:14.2070101Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-21T05:16:14.2070501Z               "line": 285
2026-06-21T05:16:14.2070794Z             },
2026-06-21T05:16:14.2071157Z             {
2026-06-21T05:16:14.2071471Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-21T05:16:14.2071864Z               "line": 293
2026-06-21T05:16:14.2072202Z             },
2026-06-21T05:16:14.2072512Z             {
2026-06-21T05:16:14.2072908Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-21T05:16:14.2073267Z               "line": 309
2026-06-21T05:16:14.2073591Z             },
2026-06-21T05:16:14.2073906Z             {
2026-06-21T05:16:14.2074225Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-21T05:16:14.2074629Z               "line": 317
2026-06-21T05:16:14.2074968Z             },
2026-06-21T05:16:14.2075292Z             {
2026-06-21T05:16:14.2075646Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.2076031Z               "line": 659
2026-06-21T05:16:14.2076384Z             },
2026-06-21T05:16:14.2076680Z             {
2026-06-21T05:16:14.2077014Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.2077581Z               "line": 729
2026-06-21T05:16:14.2077944Z             },
2026-06-21T05:16:14.2078261Z             {
2026-06-21T05:16:14.2078598Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2079027Z               "line": 1211
2026-06-21T05:16:14.2079388Z             },
2026-06-21T05:16:14.2079684Z             {
2026-06-21T05:16:14.2080051Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2080491Z               "line": 1248
2026-06-21T05:16:14.2080782Z             },
2026-06-21T05:16:14.2081118Z             {
2026-06-21T05:16:14.2081465Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2081974Z               "line": 1271
2026-06-21T05:16:14.2082313Z             },
2026-06-21T05:16:14.2082599Z             {
2026-06-21T05:16:14.2082966Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2083373Z               "line": 1300
2026-06-21T05:16:14.2083705Z             },
2026-06-21T05:16:14.2084022Z             {
2026-06-21T05:16:14.2084332Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2084809Z               "line": 1348
2026-06-21T05:16:14.2085108Z             },
2026-06-21T05:16:14.2085376Z             {
2026-06-21T05:16:14.2085757Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2086153Z               "line": 1391
2026-06-21T05:16:14.2086509Z             },
2026-06-21T05:16:14.2086786Z             {
2026-06-21T05:16:14.2087110Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-21T05:16:14.2087526Z               "line": 106
2026-06-21T05:16:14.2087831Z             },
2026-06-21T05:16:14.2088165Z             {
2026-06-21T05:16:14.2088650Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-21T05:16:14.2089080Z               "line": 132
2026-06-21T05:16:14.2089429Z             },
2026-06-21T05:16:14.2089724Z             {
2026-06-21T05:16:14.2090064Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T05:16:14.2090441Z               "line": 530
2026-06-21T05:16:14.2090766Z             }
2026-06-21T05:16:14.2091081Z           ]
2026-06-21T05:16:14.2091400Z         }
2026-06-21T05:16:14.2091698Z       }
2026-06-21T05:16:14.2092005Z     },
2026-06-21T05:16:14.2092282Z     {
2026-06-21T05:16:14.2092596Z       "id": "REQ-DAEMON-2",
2026-06-21T05:16:14.2092989Z       "title": "Broker/brain split for seamless self-update",
2026-06-21T05:16:14.2093365Z       "requiredStages": [
2026-06-21T05:16:14.2093769Z         "impl",
2026-06-21T05:16:14.2094051Z         "unit",
2026-06-21T05:16:14.2094363Z         "int"
2026-06-21T05:16:14.2094663Z       ],
2026-06-21T05:16:14.2094930Z       "stages": {
2026-06-21T05:16:14.2095532Z         "doc": {
2026-06-21T05:16:14.2095826Z           "complete": true,
2026-06-21T05:16:14.2096171Z           "evidence": [
2026-06-21T05:16:14.2096500Z             {
2026-06-21T05:16:14.2096890Z               "path": "docs/TWO-HOST-RUNBOOK.md",
2026-06-21T05:16:14.2097317Z               "line": 250
2026-06-21T05:16:14.2097623Z             }
2026-06-21T05:16:14.2097933Z           ]
2026-06-21T05:16:14.2098223Z         },
2026-06-21T05:16:14.2098501Z         "impl": {
2026-06-21T05:16:14.2098848Z           "complete": true,
2026-06-21T05:16:14.2099277Z           "evidence": [
2026-06-21T05:16:14.2099660Z             {
2026-06-21T05:16:14.2099994Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T05:16:14.2100377Z               "line": 23
2026-06-21T05:16:14.2100710Z             },
2026-06-21T05:16:14.2100996Z             {
2026-06-21T05:16:14.2101306Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T05:16:14.2101725Z               "line": 844
2026-06-21T05:16:14.2102067Z             },
2026-06-21T05:16:14.2102403Z             {
2026-06-21T05:16:14.2102723Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T05:16:14.2103070Z               "line": 869
2026-06-21T05:16:14.2103423Z             },
2026-06-21T05:16:14.2103729Z             {
2026-06-21T05:16:14.2104193Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T05:16:14.2104616Z               "line": 1105
2026-06-21T05:16:14.2104900Z             },
2026-06-21T05:16:14.2105252Z             {
2026-06-21T05:16:14.2105567Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2105957Z               "line": 32
2026-06-21T05:16:14.2106286Z             },
2026-06-21T05:16:14.2106568Z             {
2026-06-21T05:16:14.2106944Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2107341Z               "line": 1102
2026-06-21T05:16:14.2107653Z             },
2026-06-21T05:16:14.2108084Z             {
2026-06-21T05:16:14.2108412Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2108832Z               "line": 1813
2026-06-21T05:16:14.2109714Z             },
2026-06-21T05:16:14.2109999Z             {
2026-06-21T05:16:14.2110370Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2110787Z               "line": 2100
2026-06-21T05:16:14.2111121Z             },
2026-06-21T05:16:14.2111407Z             {
2026-06-21T05:16:14.2111722Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-21T05:16:14.2112133Z               "line": 11
2026-06-21T05:16:14.2112438Z             },
2026-06-21T05:16:14.2112741Z             {
2026-06-21T05:16:14.2113102Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.2113455Z               "line": 153
2026-06-21T05:16:14.2113804Z             },
2026-06-21T05:16:14.2114094Z             {
2026-06-21T05:16:14.2114424Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.2114795Z               "line": 343
2026-06-21T05:16:14.2115110Z             },
2026-06-21T05:16:14.2115428Z             {
2026-06-21T05:16:14.2115784Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T05:16:14.2116169Z               "line": 13
2026-06-21T05:16:14.2116498Z             },
2026-06-21T05:16:14.2116775Z             {
2026-06-21T05:16:14.2123179Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T05:16:14.2123505Z               "line": 27
2026-06-21T05:16:14.2123729Z             },
2026-06-21T05:16:14.2123929Z             {
2026-06-21T05:16:14.2124186Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T05:16:14.2124474Z               "line": 147
2026-06-21T05:16:14.2124702Z             },
2026-06-21T05:16:14.2124907Z             {
2026-06-21T05:16:14.2125150Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T05:16:14.2125435Z               "line": 632
2026-06-21T05:16:14.2125657Z             },
2026-06-21T05:16:14.2125863Z             {
2026-06-21T05:16:14.2126105Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T05:16:14.2126386Z               "line": 853
2026-06-21T05:16:14.2126602Z             },
2026-06-21T05:16:14.2126801Z             {
2026-06-21T05:16:14.2127035Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T05:16:14.2127306Z               "line": 1000
2026-06-21T05:16:14.2127531Z             },
2026-06-21T05:16:14.2127721Z             {
2026-06-21T05:16:14.2127954Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T05:16:14.2128228Z               "line": 1089
2026-06-21T05:16:14.2128447Z             },
2026-06-21T05:16:14.2128640Z             {
2026-06-21T05:16:14.2128884Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T05:16:14.2129218Z               "line": 1211
2026-06-21T05:16:14.2129442Z             },
2026-06-21T05:16:14.2129632Z             {
2026-06-21T05:16:14.2129871Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-21T05:16:14.2130157Z               "line": 10
2026-06-21T05:16:14.2130377Z             }
2026-06-21T05:16:14.2130481Z           ]
2026-06-21T05:16:14.2130581Z         },
2026-06-21T05:16:14.2130681Z         "int": {
2026-06-21T05:16:14.2130796Z           "complete": true,
2026-06-21T05:16:14.2130905Z           "evidence": [
2026-06-21T05:16:14.2131175Z             {
2026-06-21T05:16:14.2131321Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-21T05:16:14.2131437Z               "line": 17
2026-06-21T05:16:14.2131536Z             },
2026-06-21T05:16:14.2131641Z             {
2026-06-21T05:16:14.2131785Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-21T05:16:14.2131884Z               "line": 90
2026-06-21T05:16:14.2131994Z             },
2026-06-21T05:16:14.2132090Z             {
2026-06-21T05:16:14.2132241Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-21T05:16:14.2132352Z               "line": 110
2026-06-21T05:16:14.2132456Z             },
2026-06-21T05:16:14.2132658Z             {
2026-06-21T05:16:14.2132790Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-21T05:16:14.2132904Z               "line": 186
2026-06-21T05:16:14.2133006Z             },
2026-06-21T05:16:14.2133105Z             {
2026-06-21T05:16:14.2133253Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-21T05:16:14.2133363Z               "line": 309
2026-06-21T05:16:14.2133472Z             },
2026-06-21T05:16:14.2133559Z             {
2026-06-21T05:16:14.2133706Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-21T05:16:14.2133809Z               "line": 128
2026-06-21T05:16:14.2133905Z             },
2026-06-21T05:16:14.2134005Z             {
2026-06-21T05:16:14.2134150Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-21T05:16:14.2134260Z               "line": 59
2026-06-21T05:16:14.2134356Z             }
2026-06-21T05:16:14.2134460Z           ]
2026-06-21T05:16:14.2134556Z         },
2026-06-21T05:16:14.2134670Z         "unit": {
2026-06-21T05:16:14.2134779Z           "complete": true,
2026-06-21T05:16:14.2134890Z           "evidence": [
2026-06-21T05:16:14.2134990Z             {
2026-06-21T05:16:14.2135132Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-21T05:16:14.2135238Z               "line": 62
2026-06-21T05:16:14.2135342Z             },
2026-06-21T05:16:14.2135442Z             {
2026-06-21T05:16:14.2135573Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-21T05:16:14.2135685Z               "line": 76
2026-06-21T05:16:14.2135786Z             },
2026-06-21T05:16:14.2135868Z             {
2026-06-21T05:16:14.2136009Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-21T05:16:14.2136115Z               "line": 88
2026-06-21T05:16:14.2136221Z             },
2026-06-21T05:16:14.2136319Z             {
2026-06-21T05:16:14.2136452Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-21T05:16:14.2136562Z               "line": 347
2026-06-21T05:16:14.2136669Z             },
2026-06-21T05:16:14.2136779Z             {
2026-06-21T05:16:14.2136904Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T05:16:14.2137008Z               "line": 873
2026-06-21T05:16:14.2137113Z             },
2026-06-21T05:16:14.2137214Z             {
2026-06-21T05:16:14.2137341Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T05:16:14.2137452Z               "line": 881
2026-06-21T05:16:14.2137552Z             },
2026-06-21T05:16:14.2137656Z             {
2026-06-21T05:16:14.2137781Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T05:16:14.2137890Z               "line": 898
2026-06-21T05:16:14.2137990Z             },
2026-06-21T05:16:14.2138091Z             {
2026-06-21T05:16:14.2138219Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T05:16:14.2138329Z               "line": 974
2026-06-21T05:16:14.2138430Z             },
2026-06-21T05:16:14.2138529Z             {
2026-06-21T05:16:14.2138672Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T05:16:14.2138788Z               "line": 1282
2026-06-21T05:16:14.2138891Z             },
2026-06-21T05:16:14.2139065Z             {
2026-06-21T05:16:14.2139200Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T05:16:14.2139309Z               "line": 1294
2026-06-21T05:16:14.2139615Z             },
2026-06-21T05:16:14.2139716Z             {
2026-06-21T05:16:14.2139863Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-21T05:16:14.2139973Z               "line": 110
2026-06-21T05:16:14.2140074Z             },
2026-06-21T05:16:14.2140169Z             {
2026-06-21T05:16:14.2140302Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-21T05:16:14.2140407Z               "line": 145
2026-06-21T05:16:14.2140507Z             }
2026-06-21T05:16:14.2140607Z           ]
2026-06-21T05:16:14.2140703Z         }
2026-06-21T05:16:14.2140798Z       }
2026-06-21T05:16:14.2140898Z     },
2026-06-21T05:16:14.2140985Z     {
2026-06-21T05:16:14.2141194Z       "id": "REQ-DAEMON-3",
2026-06-21T05:16:14.2141380Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-21T05:16:14.2141488Z       "requiredStages": [
2026-06-21T05:16:14.2141598Z         "impl",
2026-06-21T05:16:14.2141702Z         "unit",
2026-06-21T05:16:14.2141806Z         "int"
2026-06-21T05:16:14.2141910Z       ],
2026-06-21T05:16:14.2142011Z       "stages": {
2026-06-21T05:16:14.2142120Z         "doc": {
2026-06-21T05:16:14.2142234Z           "complete": false,
2026-06-21T05:16:14.2142345Z           "evidence": []
2026-06-21T05:16:14.2142444Z         },
2026-06-21T05:16:14.2142549Z         "impl": {
2026-06-21T05:16:14.2142659Z           "complete": true,
2026-06-21T05:16:14.2142768Z           "evidence": [
2026-06-21T05:16:14.2142869Z             {
2026-06-21T05:16:14.2143012Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.2143121Z               "line": 14
2026-06-21T05:16:14.2143218Z             },
2026-06-21T05:16:14.2143331Z             {
2026-06-21T05:16:14.2143474Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-21T05:16:14.2143585Z               "line": 11
2026-06-21T05:16:14.2143698Z             },
2026-06-21T05:16:14.2143789Z             {
2026-06-21T05:16:14.2143928Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T05:16:14.2144042Z               "line": 305
2026-06-21T05:16:14.2144143Z             },
2026-06-21T05:16:14.2144248Z             {
2026-06-21T05:16:14.2144369Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2144479Z               "line": 1956
2026-06-21T05:16:14.2144579Z             },
2026-06-21T05:16:14.2144682Z             {
2026-06-21T05:16:14.2144811Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2144921Z               "line": 4235
2026-06-21T05:16:14.2145015Z             },
2026-06-21T05:16:14.2145121Z             {
2026-06-21T05:16:14.2145245Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2145354Z               "line": 4256
2026-06-21T05:16:14.2145455Z             }
2026-06-21T05:16:14.2145555Z           ]
2026-06-21T05:16:14.2145655Z         },
2026-06-21T05:16:14.2145755Z         "int": {
2026-06-21T05:16:14.2145870Z           "complete": true,
2026-06-21T05:16:14.2145979Z           "evidence": [
2026-06-21T05:16:14.2146075Z             {
2026-06-21T05:16:14.2146227Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-21T05:16:14.2146322Z               "line": 49
2026-06-21T05:16:14.2146438Z             },
2026-06-21T05:16:14.2146537Z             {
2026-06-21T05:16:14.2146681Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-21T05:16:14.2146795Z               "line": 487
2026-06-21T05:16:14.2146894Z             }
2026-06-21T05:16:14.2146984Z           ]
2026-06-21T05:16:14.2147074Z         },
2026-06-21T05:16:14.2147174Z         "unit": {
2026-06-21T05:16:14.2147282Z           "complete": true,
2026-06-21T05:16:14.2147397Z           "evidence": [
2026-06-21T05:16:14.2147498Z             {
2026-06-21T05:16:14.2147644Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.2147760Z               "line": 1553
2026-06-21T05:16:14.2147864Z             },
2026-06-21T05:16:14.2147964Z             {
2026-06-21T05:16:14.2148084Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2148259Z               "line": 10715
2026-06-21T05:16:14.2148365Z             }
2026-06-21T05:16:14.2148464Z           ]
2026-06-21T05:16:14.2148560Z         }
2026-06-21T05:16:14.2148656Z       }
2026-06-21T05:16:14.2148760Z     },
2026-06-21T05:16:14.2148860Z     {
2026-06-21T05:16:14.2149066Z       "id": "REQ-DAEMON-4",
2026-06-21T05:16:14.2149199Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-21T05:16:14.2149320Z       "requiredStages": [
2026-06-21T05:16:14.2149423Z         "impl",
2026-06-21T05:16:14.2149523Z         "unit",
2026-06-21T05:16:14.2149629Z         "int"
2026-06-21T05:16:14.2149724Z       ],
2026-06-21T05:16:14.2149837Z       "stages": {
2026-06-21T05:16:14.2150043Z         "doc": {
2026-06-21T05:16:14.2150151Z           "complete": false,
2026-06-21T05:16:14.2150261Z           "evidence": []
2026-06-21T05:16:14.2150362Z         },
2026-06-21T05:16:14.2150466Z         "impl": {
2026-06-21T05:16:14.2150577Z           "complete": true,
2026-06-21T05:16:14.2150681Z           "evidence": [
2026-06-21T05:16:14.2150781Z             {
2026-06-21T05:16:14.2150925Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.2151044Z               "line": 464
2026-06-21T05:16:14.2151139Z             },
2026-06-21T05:16:14.2151245Z             {
2026-06-21T05:16:14.2151382Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.2151482Z               "line": 529
2026-06-21T05:16:14.2151579Z             },
2026-06-21T05:16:14.2151682Z             {
2026-06-21T05:16:14.2151826Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.2151931Z               "line": 551
2026-06-21T05:16:14.2152039Z             }
2026-06-21T05:16:14.2152139Z           ]
2026-06-21T05:16:14.2152239Z         },
2026-06-21T05:16:14.2152342Z         "int": {
2026-06-21T05:16:14.2152456Z           "complete": true,
2026-06-21T05:16:14.2152557Z           "evidence": [
2026-06-21T05:16:14.2152652Z             {
2026-06-21T05:16:14.2152804Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-21T05:16:14.2152905Z               "line": 42
2026-06-21T05:16:14.2153004Z             }
2026-06-21T05:16:14.2153109Z           ]
2026-06-21T05:16:14.2153210Z         },
2026-06-21T05:16:14.2153314Z         "unit": {
2026-06-21T05:16:14.2153420Z           "complete": true,
2026-06-21T05:16:14.2153524Z           "evidence": [
2026-06-21T05:16:14.2153624Z             {
2026-06-21T05:16:14.2153758Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-21T05:16:14.2153867Z               "line": 428
2026-06-21T05:16:14.2153958Z             },
2026-06-21T05:16:14.2154059Z             {
2026-06-21T05:16:14.2154196Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.2154321Z               "line": 957
2026-06-21T05:16:14.2154422Z             },
2026-06-21T05:16:14.2154516Z             {
2026-06-21T05:16:14.2154659Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.2154765Z               "line": 1027
2026-06-21T05:16:14.2154873Z             },
2026-06-21T05:16:14.2154972Z             {
2026-06-21T05:16:14.2155120Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.2155223Z               "line": 1057
2026-06-21T05:16:14.2155323Z             },
2026-06-21T05:16:14.2155424Z             {
2026-06-21T05:16:14.2155566Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.2155671Z               "line": 1090
2026-06-21T05:16:14.2155768Z             }
2026-06-21T05:16:14.2155857Z           ]
2026-06-21T05:16:14.2155957Z         }
2026-06-21T05:16:14.2156058Z       }
2026-06-21T05:16:14.2156158Z     },
2026-06-21T05:16:14.2156252Z     {
2026-06-21T05:16:14.2156363Z       "id": "REQ-DAEMON-5",
2026-06-21T05:16:14.2157818Z       "title": "Pump liveness: the peer pump writes a last-tick heartbeat consumed by daemon status / subnet status (decision 23 render legs in REQ-CLI-2/REQ-SUBNET-8); the daemon supervises the pump task — a panic is caught, logged loudly, and the pump restarts with capped backoff (≤5 min), so a 5.9-class death self-heals visibly instead of silently halving the daemon (M8 decision 23; field motivation: hfenduleam 2026-06-07 half-death)",
2026-06-21T05:16:14.2158053Z       "requiredStages": [
2026-06-21T05:16:14.2158156Z         "impl",
2026-06-21T05:16:14.2158258Z         "unit"
2026-06-21T05:16:14.2158357Z       ],
2026-06-21T05:16:14.2158461Z       "stages": {
2026-06-21T05:16:14.2158563Z         "doc": {
2026-06-21T05:16:14.2158672Z           "complete": false,
2026-06-21T05:16:14.2158781Z           "evidence": []
2026-06-21T05:16:14.2158883Z         },
2026-06-21T05:16:14.2159064Z         "impl": {
2026-06-21T05:16:14.2159274Z           "complete": true,
2026-06-21T05:16:14.2159383Z           "evidence": [
2026-06-21T05:16:14.2159487Z             {
2026-06-21T05:16:14.2159640Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T05:16:14.2159749Z               "line": 476
2026-06-21T05:16:14.2159856Z             },
2026-06-21T05:16:14.2159964Z             {
2026-06-21T05:16:14.2160108Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T05:16:14.2160204Z               "line": 769
2026-06-21T05:16:14.2160307Z             },
2026-06-21T05:16:14.2160416Z             {
2026-06-21T05:16:14.2160560Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T05:16:14.2160659Z               "line": 782
2026-06-21T05:16:14.2160759Z             },
2026-06-21T05:16:14.2160856Z             {
2026-06-21T05:16:14.2160993Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T05:16:14.2161103Z               "line": 800
2026-06-21T05:16:14.2161203Z             },
2026-06-21T05:16:14.2161308Z             {
2026-06-21T05:16:14.2161451Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T05:16:14.2161551Z               "line": 841
2026-06-21T05:16:14.2161655Z             }
2026-06-21T05:16:14.2161757Z           ]
2026-06-21T05:16:14.2161857Z         },
2026-06-21T05:16:14.2161961Z         "int": {
2026-06-21T05:16:14.2162072Z           "complete": false,
2026-06-21T05:16:14.2162185Z           "evidence": []
2026-06-21T05:16:14.2162285Z         },
2026-06-21T05:16:14.2162391Z         "unit": {
2026-06-21T05:16:14.2162505Z           "complete": true,
2026-06-21T05:16:14.2162614Z           "evidence": [
2026-06-21T05:16:14.2162718Z             {
2026-06-21T05:16:14.2162855Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T05:16:14.2162968Z               "line": 1189
2026-06-21T05:16:14.2163064Z             },
2026-06-21T05:16:14.2163170Z             {
2026-06-21T05:16:14.2163306Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T05:16:14.2163417Z               "line": 1213
2026-06-21T05:16:14.2163522Z             },
2026-06-21T05:16:14.2163617Z             {
2026-06-21T05:16:14.2163756Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T05:16:14.2163860Z               "line": 1239
2026-06-21T05:16:14.2163970Z             }
2026-06-21T05:16:14.2164080Z           ]
2026-06-21T05:16:14.2164175Z         }
2026-06-21T05:16:14.2164284Z       }
2026-06-21T05:16:14.2164381Z     },
2026-06-21T05:16:14.2164485Z     {
2026-06-21T05:16:14.2164589Z       "id": "REQ-DAEMON-6",
2026-06-21T05:16:14.2166599Z       "title": "Service-aware `daemon start`/`stop`: when an OS service manager has a registered spt-daemon for this user, `spt daemon start` and `spt daemon stop` drive THAT service (so stop doesn't IPC-kill a unit that auto-restart-fights for the broker socket — the kitsubito 2026-06-08 loop). `start` graduates from a `run` alias to a first-class background verb (ensure-up, idempotent, non-blocking); stop routes managed→manager, manual→IPC. Linux=systemd user unit (`systemctl --user start|stop|is-active spt-daemon`, detected by unit-file presence); Windows=no controllable manager (the logon task is boot-only), so start=detached spawn / stop=IPC.",
2026-06-21T05:16:14.2166732Z       "requiredStages": [
2026-06-21T05:16:14.2166837Z         "impl",
2026-06-21T05:16:14.2167057Z         "unit"
2026-06-21T05:16:14.2167147Z       ],
2026-06-21T05:16:14.2167257Z       "stages": {
2026-06-21T05:16:14.2167366Z         "doc": {
2026-06-21T05:16:14.2167476Z           "complete": false,
2026-06-21T05:16:14.2167577Z           "evidence": []
2026-06-21T05:16:14.2167681Z         },
2026-06-21T05:16:14.2167786Z         "impl": {
2026-06-21T05:16:14.2167892Z           "complete": true,
2026-06-21T05:16:14.2168005Z           "evidence": [
2026-06-21T05:16:14.2168114Z             {
2026-06-21T05:16:14.2168261Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.2168373Z               "line": 495
2026-06-21T05:16:14.2168551Z             },
2026-06-21T05:16:14.2168655Z             {
2026-06-21T05:16:14.2168793Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.2168908Z               "line": 526
2026-06-21T05:16:14.2169084Z             },
2026-06-21T05:16:14.2169176Z             {
2026-06-21T05:16:14.2169323Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-21T05:16:14.2169433Z               "line": 55
2026-06-21T05:16:14.2169538Z             },
2026-06-21T05:16:14.2169642Z             {
2026-06-21T05:16:14.2169782Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-21T05:16:14.2169881Z               "line": 70
2026-06-21T05:16:14.2169976Z             },
2026-06-21T05:16:14.2170082Z             {
2026-06-21T05:16:14.2170205Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2170314Z               "line": 2020
2026-06-21T05:16:14.2170421Z             },
2026-06-21T05:16:14.2170520Z             {
2026-06-21T05:16:14.2170648Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2170759Z               "line": 2046
2026-06-21T05:16:14.2170867Z             }
2026-06-21T05:16:14.2170962Z           ]
2026-06-21T05:16:14.2171067Z         },
2026-06-21T05:16:14.2171168Z         "int": {
2026-06-21T05:16:14.2171276Z           "complete": false,
2026-06-21T05:16:14.2171382Z           "evidence": []
2026-06-21T05:16:14.2171477Z         },
2026-06-21T05:16:14.2171591Z         "unit": {
2026-06-21T05:16:14.2171697Z           "complete": true,
2026-06-21T05:16:14.2171811Z           "evidence": [
2026-06-21T05:16:14.2171915Z             {
2026-06-21T05:16:14.2172060Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-21T05:16:14.2172164Z               "line": 288
2026-06-21T05:16:14.2172264Z             },
2026-06-21T05:16:14.2172365Z             {
2026-06-21T05:16:14.2172498Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-21T05:16:14.2172612Z               "line": 299
2026-06-21T05:16:14.2172718Z             },
2026-06-21T05:16:14.2172816Z             {
2026-06-21T05:16:14.2172961Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-21T05:16:14.2173070Z               "line": 325
2026-06-21T05:16:14.2173178Z             },
2026-06-21T05:16:14.2173279Z             {
2026-06-21T05:16:14.2173420Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-21T05:16:14.2173547Z               "line": 351
2026-06-21T05:16:14.2173648Z             }
2026-06-21T05:16:14.2173758Z           ]
2026-06-21T05:16:14.2173848Z         }
2026-06-21T05:16:14.2173953Z       }
2026-06-21T05:16:14.2174054Z     },
2026-06-21T05:16:14.2174153Z     {
2026-06-21T05:16:14.2174264Z       "id": "REQ-DAEMON-7",
2026-06-21T05:16:14.2175703Z       "title": "`daemon run` is foreground-consistent on every platform: the invoking process IS the daemon, blocks until signalled, never auto-detaches or respawns into an invisible background task. The detached/de-elevated background behavior lives ONLY in `start`. Windows: an ELEVATED `daemon run` refuses with guidance (use `start`, or an unelevated shell) instead of respawning detached/de-elevated and vanishing (KH 5.7 preserved — it still never serves elevated).",
2026-06-21T05:16:14.2175828Z       "requiredStages": [
2026-06-21T05:16:14.2175928Z         "impl",
2026-06-21T05:16:14.2176036Z         "unit"
2026-06-21T05:16:14.2176268Z       ],
2026-06-21T05:16:14.2176372Z       "stages": {
2026-06-21T05:16:14.2176477Z         "doc": {
2026-06-21T05:16:14.2176592Z           "complete": false,
2026-06-21T05:16:14.2176701Z           "evidence": []
2026-06-21T05:16:14.2176801Z         },
2026-06-21T05:16:14.2176897Z         "impl": {
2026-06-21T05:16:14.2177006Z           "complete": true,
2026-06-21T05:16:14.2177111Z           "evidence": [
2026-06-21T05:16:14.2177221Z             {
2026-06-21T05:16:14.2177349Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.2177465Z               "line": 545
2026-06-21T05:16:14.2177559Z             },
2026-06-21T05:16:14.2177659Z             {
2026-06-21T05:16:14.2177907Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T05:16:14.2178017Z               "line": 610
2026-06-21T05:16:14.2178128Z             },
2026-06-21T05:16:14.2178226Z             {
2026-06-21T05:16:14.2178409Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-21T05:16:14.2178518Z               "line": 89
2026-06-21T05:16:14.2178621Z             },
2026-06-21T05:16:14.2178726Z             {
2026-06-21T05:16:14.2178849Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2179058Z               "line": 1957
2026-06-21T05:16:14.2179149Z             }
2026-06-21T05:16:14.2179244Z           ]
2026-06-21T05:16:14.2179344Z         },
2026-06-21T05:16:14.2179469Z         "int": {
2026-06-21T05:16:14.2179573Z           "complete": false,
2026-06-21T05:16:14.2179683Z           "evidence": []
2026-06-21T05:16:14.2179783Z         },
2026-06-21T05:16:14.2179887Z         "unit": {
2026-06-21T05:16:14.2180003Z           "complete": true,
2026-06-21T05:16:14.2180117Z           "evidence": [
2026-06-21T05:16:14.2180221Z             {
2026-06-21T05:16:14.2180365Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-21T05:16:14.2180469Z               "line": 314
2026-06-21T05:16:14.2180574Z             },
2026-06-21T05:16:14.2180675Z             {
2026-06-21T05:16:14.2180803Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2180903Z               "line": 8102
2026-06-21T05:16:14.2181009Z             }
2026-06-21T05:16:14.2181098Z           ]
2026-06-21T05:16:14.2181199Z         }
2026-06-21T05:16:14.2181296Z       }
2026-06-21T05:16:14.2181399Z     },
2026-06-21T05:16:14.2181498Z     {
2026-06-21T05:16:14.2181608Z       "id": "REQ-DAEMON-8",
2026-06-21T05:16:14.2182600Z       "title": "Internal auto-start prefers the service: `ensure_running` (any spt command's implicit daemon start, REQ-DAEMON-3) routes through the service-aware start path — when a manager has a registered service it starts THAT, never a competing manual `spawn_detached` daemon that would fight the service for the socket.",
2026-06-21T05:16:14.2182734Z       "requiredStages": [
2026-06-21T05:16:14.2182838Z         "impl",
2026-06-21T05:16:14.2182949Z         "unit"
2026-06-21T05:16:14.2183048Z       ],
2026-06-21T05:16:14.2183153Z       "stages": {
2026-06-21T05:16:14.2183259Z         "doc": {
2026-06-21T05:16:14.2183371Z           "complete": false,
2026-06-21T05:16:14.2183473Z           "evidence": []
2026-06-21T05:16:14.2183574Z         },
2026-06-21T05:16:14.2183677Z         "impl": {
2026-06-21T05:16:14.2183786Z           "complete": true,
2026-06-21T05:16:14.2183896Z           "evidence": [
2026-06-21T05:16:14.2183999Z             {
2026-06-21T05:16:14.2184141Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.2184251Z               "line": 445
2026-06-21T05:16:14.2184346Z             },
2026-06-21T05:16:14.2184451Z             {
2026-06-21T05:16:14.2184599Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-21T05:16:14.2184718Z               "line": 56
2026-06-21T05:16:14.2184824Z             }
2026-06-21T05:16:14.2184923Z           ]
2026-06-21T05:16:14.2185023Z         },
2026-06-21T05:16:14.2185124Z         "int": {
2026-06-21T05:16:14.2185248Z           "complete": false,
2026-06-21T05:16:14.2185357Z           "evidence": []
2026-06-21T05:16:14.2185562Z         },
2026-06-21T05:16:14.2185667Z         "unit": {
2026-06-21T05:16:14.2185768Z           "complete": true,
2026-06-21T05:16:14.2185882Z           "evidence": [
2026-06-21T05:16:14.2185981Z             {
2026-06-21T05:16:14.2186131Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-21T05:16:14.2186239Z               "line": 288
2026-06-21T05:16:14.2186340Z             },
2026-06-21T05:16:14.2186446Z             {
2026-06-21T05:16:14.2186586Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-21T05:16:14.2186696Z               "line": 325
2026-06-21T05:16:14.2186796Z             }
2026-06-21T05:16:14.2186899Z           ]
2026-06-21T05:16:14.2187090Z         }
2026-06-21T05:16:14.2187190Z       }
2026-06-21T05:16:14.2187290Z     },
2026-06-21T05:16:14.2187386Z     {
2026-06-21T05:16:14.2187500Z       "id": "REQ-DAEMON-9",
2026-06-21T05:16:14.2190314Z       "title": "Net-bind boot-race resilience: a daemon that comes up net-less (NetHost::start failed — e.g. the systemd unit autostarted before the network/DNS stack was ready, `Failed to create an address lookup service`) must SELF-HEAL — retry the net bring-up in the background with capped backoff and, on success, attach net to the broker + spawn the dispatcher/peer-pump (which today are gated on `net_up` at boot and so never start, leaving the node silently unreachable until a manual restart — kitsubito 2026-06-08). Status surfaces the net-less state honestly (a net-less broker renders as 'no connection', not only a pump-STALLED line with a bogus pre-boot heartbeat age). The installer's autostart unit waits for the network (`Wants=/After=network-online.target`) as belt-and-suspenders.",
2026-06-21T05:16:14.2190462Z       "requiredStages": [
2026-06-21T05:16:14.2190568Z         "impl",
2026-06-21T05:16:14.2190677Z         "unit"
2026-06-21T05:16:14.2190772Z       ],
2026-06-21T05:16:14.2190882Z       "stages": {
2026-06-21T05:16:14.2190982Z         "doc": {
2026-06-21T05:16:14.2191101Z           "complete": false,
2026-06-21T05:16:14.2191207Z           "evidence": []
2026-06-21T05:16:14.2191315Z         },
2026-06-21T05:16:14.2191416Z         "impl": {
2026-06-21T05:16:14.2191531Z           "complete": true,
2026-06-21T05:16:14.2191635Z           "evidence": [
2026-06-21T05:16:14.2191726Z             {
2026-06-21T05:16:14.2191880Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2191992Z               "line": 276
2026-06-21T05:16:14.2192096Z             },
2026-06-21T05:16:14.2192197Z             {
2026-06-21T05:16:14.2192340Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2192454Z               "line": 1153
2026-06-21T05:16:14.2192560Z             },
2026-06-21T05:16:14.2192664Z             {
2026-06-21T05:16:14.2192798Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.2192903Z               "line": 197
2026-06-21T05:16:14.2193007Z             },
2026-06-21T05:16:14.2193107Z             {
2026-06-21T05:16:14.2193241Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.2193350Z               "line": 344
2026-06-21T05:16:14.2193452Z             },
2026-06-21T05:16:14.2193551Z             {
2026-06-21T05:16:14.2193698Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.2193804Z               "line": 381
2026-06-21T05:16:14.2193904Z             },
2026-06-21T05:16:14.2194008Z             {
2026-06-21T05:16:14.2194129Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2194242Z               "line": 2075
2026-06-21T05:16:14.2194346Z             }
2026-06-21T05:16:14.2194441Z           ]
2026-06-21T05:16:14.2194540Z         },
2026-06-21T05:16:14.2194649Z         "int": {
2026-06-21T05:16:14.2194763Z           "complete": false,
2026-06-21T05:16:14.2194873Z           "evidence": []
2026-06-21T05:16:14.2194982Z         },
2026-06-21T05:16:14.2195083Z         "unit": {
2026-06-21T05:16:14.2195193Z           "complete": true,
2026-06-21T05:16:14.2195302Z           "evidence": [
2026-06-21T05:16:14.2195508Z             {
2026-06-21T05:16:14.2195650Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.2195770Z               "line": 1158
2026-06-21T05:16:14.2195879Z             },
2026-06-21T05:16:14.2195979Z             {
2026-06-21T05:16:14.2196113Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2196222Z               "line": 10580
2026-06-21T05:16:14.2196319Z             }
2026-06-21T05:16:14.2196423Z           ]
2026-06-21T05:16:14.2196523Z         }
2026-06-21T05:16:14.2196629Z       }
2026-06-21T05:16:14.2196724Z     },
2026-06-21T05:16:14.2196823Z     {
2026-06-21T05:16:14.2196934Z       "id": "REQ-DOCS-1",
2026-06-21T05:16:14.2197256Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-21T05:16:14.2197366Z       "requiredStages": [
2026-06-21T05:16:14.2197463Z         "doc",
2026-06-21T05:16:14.2197573Z         "impl"
2026-06-21T05:16:14.2197669Z       ],
2026-06-21T05:16:14.2197778Z       "stages": {
2026-06-21T05:16:14.2197883Z         "doc": {
2026-06-21T05:16:14.2197994Z           "complete": true,
2026-06-21T05:16:14.2198098Z           "evidence": [
2026-06-21T05:16:14.2198202Z             {
2026-06-21T05:16:14.2198336Z               "path": "docs-site/src/index.md",
2026-06-21T05:16:14.2198445Z               "line": 50
2026-06-21T05:16:14.2198551Z             }
2026-06-21T05:16:14.2198656Z           ]
2026-06-21T05:16:14.2198751Z         },
2026-06-21T05:16:14.2198856Z         "impl": {
2026-06-21T05:16:14.2199046Z           "complete": true,
2026-06-21T05:16:14.2199152Z           "evidence": [
2026-06-21T05:16:14.2199248Z             {
2026-06-21T05:16:14.2199404Z               "path": ".github/workflows/docs-publish.yml",
2026-06-21T05:16:14.2199506Z               "line": 12
2026-06-21T05:16:14.2199610Z             },
2026-06-21T05:16:14.2199713Z             {
2026-06-21T05:16:14.2199842Z               "path": "crates/xtask/src/main.rs",
2026-06-21T05:16:14.2199951Z               "line": 14
2026-06-21T05:16:14.2200059Z             }
2026-06-21T05:16:14.2200159Z           ]
2026-06-21T05:16:14.2200255Z         },
2026-06-21T05:16:14.2200359Z         "int": {
2026-06-21T05:16:14.2200474Z           "complete": false,
2026-06-21T05:16:14.2200584Z           "evidence": []
2026-06-21T05:16:14.2200688Z         },
2026-06-21T05:16:14.2200779Z         "unit": {
2026-06-21T05:16:14.2200884Z           "complete": false,
2026-06-21T05:16:14.2200998Z           "evidence": []
2026-06-21T05:16:14.2201099Z         }
2026-06-21T05:16:14.2201199Z       }
2026-06-21T05:16:14.2201299Z     },
2026-06-21T05:16:14.2201399Z     {
2026-06-21T05:16:14.2201500Z       "id": "REQ-DOCS-2",
2026-06-21T05:16:14.2201690Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-21T05:16:14.2201810Z       "requiredStages": [
2026-06-21T05:16:14.2201913Z         "doc",
2026-06-21T05:16:14.2202009Z         "int"
2026-06-21T05:16:14.2202106Z       ],
2026-06-21T05:16:14.2202214Z       "stages": {
2026-06-21T05:16:14.2202324Z         "doc": {
2026-06-21T05:16:14.2202435Z           "complete": true,
2026-06-21T05:16:14.2202547Z           "evidence": [
2026-06-21T05:16:14.2202646Z             {
2026-06-21T05:16:14.2202853Z               "path": "docs-site/src/harness-contract/integration-checklist.md",
2026-06-21T05:16:14.2202961Z               "line": 3
2026-06-21T05:16:14.2203067Z             },
2026-06-21T05:16:14.2203167Z             {
2026-06-21T05:16:14.2203309Z               "path": "docs-site/src/quickstart/adapter.md",
2026-06-21T05:16:14.2203415Z               "line": 3
2026-06-21T05:16:14.2203520Z             },
2026-06-21T05:16:14.2203619Z             {
2026-06-21T05:16:14.2203773Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-21T05:16:14.2203877Z               "line": 3
2026-06-21T05:16:14.2203987Z             }
2026-06-21T05:16:14.2204083Z           ]
2026-06-21T05:16:14.2204188Z         },
2026-06-21T05:16:14.2204293Z         "impl": {
2026-06-21T05:16:14.2204407Z           "complete": false,
2026-06-21T05:16:14.2204612Z           "evidence": []
2026-06-21T05:16:14.2204713Z         },
2026-06-21T05:16:14.2204812Z         "int": {
2026-06-21T05:16:14.2204911Z           "complete": true,
2026-06-21T05:16:14.2205025Z           "evidence": [
2026-06-21T05:16:14.2205124Z             {
2026-06-21T05:16:14.2205266Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-21T05:16:14.2205377Z               "line": 14
2026-06-21T05:16:14.2205481Z             }
2026-06-21T05:16:14.2205638Z           ]
2026-06-21T05:16:14.2208901Z         },
2026-06-21T05:16:14.2209087Z         "unit": {
2026-06-21T05:16:14.2209207Z           "complete": false,
2026-06-21T05:16:14.2209470Z           "evidence": []
2026-06-21T05:16:14.2209564Z         }
2026-06-21T05:16:14.2209664Z       }
2026-06-21T05:16:14.2209761Z     },
2026-06-21T05:16:14.2209860Z     {
2026-06-21T05:16:14.2209974Z       "id": "REQ-DOCS-3",
2026-06-21T05:16:14.2210264Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-21T05:16:14.2210388Z       "requiredStages": [
2026-06-21T05:16:14.2210488Z         "doc"
2026-06-21T05:16:14.2210590Z       ],
2026-06-21T05:16:14.2210695Z       "stages": {
2026-06-21T05:16:14.2210801Z         "doc": {
2026-06-21T05:16:14.2210905Z           "complete": true,
2026-06-21T05:16:14.2211010Z           "evidence": [
2026-06-21T05:16:14.2211111Z             {
2026-06-21T05:16:14.2211243Z               "path": "docs-site/src/index.md",
2026-06-21T05:16:14.2211344Z               "line": 42
2026-06-21T05:16:14.2211444Z             }
2026-06-21T05:16:14.2211544Z           ]
2026-06-21T05:16:14.2211649Z         },
2026-06-21T05:16:14.2211764Z         "impl": {
2026-06-21T05:16:14.2211882Z           "complete": false,
2026-06-21T05:16:14.2211983Z           "evidence": []
2026-06-21T05:16:14.2212088Z         },
2026-06-21T05:16:14.2212183Z         "int": {
2026-06-21T05:16:14.2212303Z           "complete": false,
2026-06-21T05:16:14.2212398Z           "evidence": []
2026-06-21T05:16:14.2212503Z         },
2026-06-21T05:16:14.2212608Z         "unit": {
2026-06-21T05:16:14.2212709Z           "complete": false,
2026-06-21T05:16:14.2212812Z           "evidence": []
2026-06-21T05:16:14.2212913Z         }
2026-06-21T05:16:14.2213014Z       }
2026-06-21T05:16:14.2213117Z     },
2026-06-21T05:16:14.2213216Z     {
2026-06-21T05:16:14.2213327Z       "id": "REQ-DOCS-4",
2026-06-21T05:16:14.2213545Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-21T05:16:14.2213656Z       "requiredStages": [
2026-06-21T05:16:14.2213751Z         "doc",
2026-06-21T05:16:14.2213855Z         "impl",
2026-06-21T05:16:14.2213962Z         "unit"
2026-06-21T05:16:14.2214061Z       ],
2026-06-21T05:16:14.2214170Z       "stages": {
2026-06-21T05:16:14.2214272Z         "doc": {
2026-06-21T05:16:14.2214385Z           "complete": true,
2026-06-21T05:16:14.2214494Z           "evidence": [
2026-06-21T05:16:14.2214596Z             {
2026-06-21T05:16:14.2214728Z               "path": "docs/DOCS-STRATEGY.md",
2026-06-21T05:16:14.2214848Z               "line": 35
2026-06-21T05:16:14.2214948Z             }
2026-06-21T05:16:14.2215048Z           ]
2026-06-21T05:16:14.2215148Z         },
2026-06-21T05:16:14.2215245Z         "impl": {
2026-06-21T05:16:14.2215348Z           "complete": true,
2026-06-21T05:16:14.2215457Z           "evidence": [
2026-06-21T05:16:14.2215557Z             {
2026-06-21T05:16:14.2215722Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.2215831Z               "line": 746
2026-06-21T05:16:14.2215932Z             },
2026-06-21T05:16:14.2216037Z             {
2026-06-21T05:16:14.2216170Z               "path": "crates/xtask/src/main.rs",
2026-06-21T05:16:14.2216275Z               "line": 15
2026-06-21T05:16:14.2216370Z             }
2026-06-21T05:16:14.2216470Z           ]
2026-06-21T05:16:14.2216571Z         },
2026-06-21T05:16:14.2216675Z         "int": {
2026-06-21T05:16:14.2216795Z           "complete": false,
2026-06-21T05:16:14.2217014Z           "evidence": []
2026-06-21T05:16:14.2217114Z         },
2026-06-21T05:16:14.2217214Z         "unit": {
2026-06-21T05:16:14.2217329Z           "complete": true,
2026-06-21T05:16:14.2217434Z           "evidence": [
2026-06-21T05:16:14.2217539Z             {
2026-06-21T05:16:14.2217690Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.2217802Z               "line": 1682
2026-06-21T05:16:14.2217905Z             }
2026-06-21T05:16:14.2218005Z           ]
2026-06-21T05:16:14.2218107Z         }
2026-06-21T05:16:14.2218206Z       }
2026-06-21T05:16:14.2218305Z     },
2026-06-21T05:16:14.2218405Z     {
2026-06-21T05:16:14.2218518Z       "id": "REQ-DOCS-5",
2026-06-21T05:16:14.2218813Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-21T05:16:14.2218922Z       "requiredStages": [
2026-06-21T05:16:14.2219114Z         "impl",
2026-06-21T05:16:14.2219214Z         "int"
2026-06-21T05:16:14.2219313Z       ],
2026-06-21T05:16:14.2219414Z       "stages": {
2026-06-21T05:16:14.2219524Z         "doc": {
2026-06-21T05:16:14.2219643Z           "complete": false,
2026-06-21T05:16:14.2219734Z           "evidence": []
2026-06-21T05:16:14.2219838Z         },
2026-06-21T05:16:14.2219943Z         "impl": {
2026-06-21T05:16:14.2220054Z           "complete": true,
2026-06-21T05:16:14.2220147Z           "evidence": [
2026-06-21T05:16:14.2220248Z             {
2026-06-21T05:16:14.2220402Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.2220505Z               "line": 747
2026-06-21T05:16:14.2220606Z             },
2026-06-21T05:16:14.2220707Z             {
2026-06-21T05:16:14.2220843Z               "path": "crates/xtask/src/main.rs",
2026-06-21T05:16:14.2220948Z               "line": 113
2026-06-21T05:16:14.2221048Z             }
2026-06-21T05:16:14.2221150Z           ]
2026-06-21T05:16:14.2221245Z         },
2026-06-21T05:16:14.2221342Z         "int": {
2026-06-21T05:16:14.2221456Z           "complete": true,
2026-06-21T05:16:14.2221570Z           "evidence": [
2026-06-21T05:16:14.2221662Z             {
2026-06-21T05:16:14.2221794Z               "path": ".github/workflows/ci.yml",
2026-06-21T05:16:14.2221909Z               "line": 175
2026-06-21T05:16:14.2222005Z             },
2026-06-21T05:16:14.2222109Z             {
2026-06-21T05:16:14.2222253Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.2222371Z               "line": 1719
2026-06-21T05:16:14.2222471Z             }
2026-06-21T05:16:14.2222577Z           ]
2026-06-21T05:16:14.2222676Z         },
2026-06-21T05:16:14.2222776Z         "unit": {
2026-06-21T05:16:14.2222887Z           "complete": false,
2026-06-21T05:16:14.2222996Z           "evidence": []
2026-06-21T05:16:14.2223096Z         }
2026-06-21T05:16:14.2223197Z       }
2026-06-21T05:16:14.2223306Z     },
2026-06-21T05:16:14.2223397Z     {
2026-06-21T05:16:14.2223508Z       "id": "REQ-DOCS-6",
2026-06-21T05:16:14.2223863Z       "title": "spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)",
2026-06-21T05:16:14.2223978Z       "requiredStages": [
2026-06-21T05:16:14.2224087Z         "impl",
2026-06-21T05:16:14.2224187Z         "unit",
2026-06-21T05:16:14.2224293Z         "int"
2026-06-21T05:16:14.2224397Z       ],
2026-06-21T05:16:14.2224498Z       "stages": {
2026-06-21T05:16:14.2224602Z         "doc": {
2026-06-21T05:16:14.2224706Z           "complete": true,
2026-06-21T05:16:14.2224817Z           "evidence": [
2026-06-21T05:16:14.2224917Z             {
2026-06-21T05:16:14.2225069Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-21T05:16:14.2225175Z               "line": 4
2026-06-21T05:16:14.2225284Z             }
2026-06-21T05:16:14.2225384Z           ]
2026-06-21T05:16:14.2225481Z         },
2026-06-21T05:16:14.2225584Z         "impl": {
2026-06-21T05:16:14.2225689Z           "complete": true,
2026-06-21T05:16:14.2225800Z           "evidence": [
2026-06-21T05:16:14.2225908Z             {
2026-06-21T05:16:14.2226141Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2226253Z               "line": 5240
2026-06-21T05:16:14.2226353Z             }
2026-06-21T05:16:14.2226454Z           ]
2026-06-21T05:16:14.2226549Z         },
2026-06-21T05:16:14.2226643Z         "int": {
2026-06-21T05:16:14.2226759Z           "complete": true,
2026-06-21T05:16:14.2226859Z           "evidence": [
2026-06-21T05:16:14.2226963Z             {
2026-06-21T05:16:14.2227107Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-21T05:16:14.2227211Z               "line": 39
2026-06-21T05:16:14.2227311Z             }
2026-06-21T05:16:14.2227412Z           ]
2026-06-21T05:16:14.2227607Z         },
2026-06-21T05:16:14.2227709Z         "unit": {
2026-06-21T05:16:14.2227827Z           "complete": true,
2026-06-21T05:16:14.2227936Z           "evidence": [
2026-06-21T05:16:14.2228038Z             {
2026-06-21T05:16:14.2228165Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2228270Z               "line": 10742
2026-06-21T05:16:14.2228380Z             }
2026-06-21T05:16:14.2228480Z           ]
2026-06-21T05:16:14.2228580Z         }
2026-06-21T05:16:14.2228677Z       }
2026-06-21T05:16:14.2228780Z     },
2026-06-21T05:16:14.2228879Z     {
2026-06-21T05:16:14.2229055Z       "id": "REQ-ELEVATE-1",
2026-06-21T05:16:14.2232259Z       "title": "Cross-platform self-elevating re-launch for privilege-gated commands: a pure decision seam `decide_elevation_path(os, elevation, interactive_tty, has_display, has_pkexec, has_term_emulator) -> ElevatePath{AlreadyElevated, InlineSudo, UacWindow, Pkexec, TerminalEmulator, PrintHint}` selecting how to re-acquire privilege, and the per-OS impure launchers it dispatches — Windows UAC console (ShellExecuteW `runas` on the abs-exe + verbatim argv; the elevated child does the work, prints 'You can close this window', and pauses for a keypress; the original prints 'Elevated terminal launched…' and exits 0; NEVER pipes the child's stdout back across the privilege boundary), Linux desktop pkexec (preferred, native polkit GUI auth) else x-terminal-emulator -e sudo (fallback list x-terminal-emulator→gnome-terminal→konsole→xterm), the existing interactive-TTY inline sudo, and the headless/no-path floor that prints the absolute-path command. Reused by every gated command (not subnet-specific). Generalizes should_auto_elevate.",
2026-06-21T05:16:14.2232411Z       "requiredStages": [
2026-06-21T05:16:14.2232508Z         "doc",
2026-06-21T05:16:14.2232607Z         "impl",
2026-06-21T05:16:14.2232707Z         "unit"
2026-06-21T05:16:14.2232808Z       ],
2026-06-21T05:16:14.2232917Z       "stages": {
2026-06-21T05:16:14.2233017Z         "doc": {
2026-06-21T05:16:14.2233147Z           "complete": true,
2026-06-21T05:16:14.2233255Z           "evidence": [
2026-06-21T05:16:14.2233355Z             {
2026-06-21T05:16:14.2233471Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.2233584Z               "line": 687
2026-06-21T05:16:14.2233685Z             }
2026-06-21T05:16:14.2233786Z           ]
2026-06-21T05:16:14.2233894Z         },
2026-06-21T05:16:14.2233990Z         "impl": {
2026-06-21T05:16:14.2234096Z           "complete": true,
2026-06-21T05:16:14.2234200Z           "evidence": [
2026-06-21T05:16:14.2234304Z             {
2026-06-21T05:16:14.2234428Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2234538Z               "line": 3572
2026-06-21T05:16:14.2234637Z             },
2026-06-21T05:16:14.2234733Z             {
2026-06-21T05:16:14.2234863Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2234966Z               "line": 3617
2026-06-21T05:16:14.2235068Z             },
2026-06-21T05:16:14.2235167Z             {
2026-06-21T05:16:14.2235305Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2235411Z               "line": 3679
2026-06-21T05:16:14.2235510Z             },
2026-06-21T05:16:14.2235610Z             {
2026-06-21T05:16:14.2235736Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T05:16:14.2235844Z               "line": 92
2026-06-21T05:16:14.2236050Z             },
2026-06-21T05:16:14.2236158Z             {
2026-06-21T05:16:14.2236297Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T05:16:14.2236403Z               "line": 148
2026-06-21T05:16:14.2236511Z             }
2026-06-21T05:16:14.2236610Z           ]
2026-06-21T05:16:14.2236706Z         },
2026-06-21T05:16:14.2236808Z         "int": {
2026-06-21T05:16:14.2236922Z           "complete": false,
2026-06-21T05:16:14.2237028Z           "evidence": []
2026-06-21T05:16:14.2237128Z         },
2026-06-21T05:16:14.2237222Z         "unit": {
2026-06-21T05:16:14.2237334Z           "complete": true,
2026-06-21T05:16:14.2237537Z           "evidence": [
2026-06-21T05:16:14.2237635Z             {
2026-06-21T05:16:14.2237762Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T05:16:14.2237876Z               "line": 442
2026-06-21T05:16:14.2237968Z             },
2026-06-21T05:16:14.2238058Z             {
2026-06-21T05:16:14.2238186Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T05:16:14.2238288Z               "line": 460
2026-06-21T05:16:14.2238392Z             }
2026-06-21T05:16:14.2238492Z           ]
2026-06-21T05:16:14.2238593Z         }
2026-06-21T05:16:14.2238692Z       }
2026-06-21T05:16:14.2238797Z     },
2026-06-21T05:16:14.2238893Z     {
2026-06-21T05:16:14.2239107Z       "id": "REQ-ENDPOINT-LIST-MERGE-LOCAL",
2026-06-21T05:16:14.2240897Z       "title": "`spt endpoint list` always merges this node's LOCAL (unadvertised) perches into the view; the `--local` flag is REMOVED (operator decision 2026-06-17). Rationale: `spt whoami` is a thin alias of `endpoint list` — a just-online agent running `whoami` must see its OWN perch, or it gets an omitted-self view ('chaos'). FIX: drop the `--local` flag + its `--detail` conflict test + the v0.10.0 REQ-PICKER-5 hint line (cli.rs:1678) + cmd_list_local; the bare list merges local perches into the subnet view; fix the whoami alias path accordingly. Run `cargo run -p xtask -- gen` (docs-drift, DEFAULT target). (v0.12.1)",
2026-06-21T05:16:14.2241030Z       "requiredStages": [
2026-06-21T05:16:14.2241131Z         "doc",
2026-06-21T05:16:14.2241226Z         "impl",
2026-06-21T05:16:14.2241330Z         "unit"
2026-06-21T05:16:14.2241431Z       ],
2026-06-21T05:16:14.2241536Z       "stages": {
2026-06-21T05:16:14.2241640Z         "doc": {
2026-06-21T05:16:14.2241741Z           "complete": true,
2026-06-21T05:16:14.2241846Z           "evidence": [
2026-06-21T05:16:14.2241945Z             {
2026-06-21T05:16:14.2242058Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.2242173Z               "line": 711
2026-06-21T05:16:14.2242262Z             }
2026-06-21T05:16:14.2242366Z           ]
2026-06-21T05:16:14.2242462Z         },
2026-06-21T05:16:14.2242567Z         "impl": {
2026-06-21T05:16:14.2242671Z           "complete": true,
2026-06-21T05:16:14.2242777Z           "evidence": [
2026-06-21T05:16:14.2242882Z             {
2026-06-21T05:16:14.2243005Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2243115Z               "line": 1721
2026-06-21T05:16:14.2243216Z             },
2026-06-21T05:16:14.2243315Z             {
2026-06-21T05:16:14.2243430Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2243540Z               "line": 3125
2026-06-21T05:16:14.2243640Z             },
2026-06-21T05:16:14.2243736Z             {
2026-06-21T05:16:14.2243850Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2243954Z               "line": 3134
2026-06-21T05:16:14.2244060Z             }
2026-06-21T05:16:14.2244158Z           ]
2026-06-21T05:16:14.2244259Z         },
2026-06-21T05:16:14.2244365Z         "int": {
2026-06-21T05:16:14.2244473Z           "complete": false,
2026-06-21T05:16:14.2244584Z           "evidence": []
2026-06-21T05:16:14.2244690Z         },
2026-06-21T05:16:14.2244793Z         "unit": {
2026-06-21T05:16:14.2244902Z           "complete": true,
2026-06-21T05:16:14.2245012Z           "evidence": [
2026-06-21T05:16:14.2245113Z             {
2026-06-21T05:16:14.2245347Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2245446Z               "line": 7950
2026-06-21T05:16:14.2245550Z             },
2026-06-21T05:16:14.2245652Z             {
2026-06-21T05:16:14.2245775Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2245879Z               "line": 7991
2026-06-21T05:16:14.2245985Z             }
2026-06-21T05:16:14.2246080Z           ]
2026-06-21T05:16:14.2246180Z         }
2026-06-21T05:16:14.2246276Z       }
2026-06-21T05:16:14.2246375Z     },
2026-06-21T05:16:14.2246475Z     {
2026-06-21T05:16:14.2246596Z       "id": "REQ-ENDPOINT-PURGE",
2026-06-21T05:16:14.2251443Z       "title": "`spt endpoint purge <id>` fully removes an endpoint AND every record keyed on it — the formal teardown devs/CI need for clean test setup/reset. NOT consent-gated (a local dev/test op — no peer consent). OFFLINE-ONLY: refuses while the endpoint is online / daemon-hosted (deleting records out from under a live host risks the daemon re-creating or re-hosting mid-purge); `--force` STOPS it first (endpoint stop → wait for the daemon reconcile to un-host + reap the Psyche) THEN purges. Confirms interactively unless `--yes` (the CI path). Refuses purging the CALLER's OWN running id. All LOCAL — purge reaches only THIS node's records; a remote endpoint's records can't be touched, and its subnet-registry rows decay via the epoch-lease eviction (REQ-HAZARD-REGISTRY-DECAY). Removes: (1) the perch dir TREE recursively — owlery/<id>/ incl every nested {id}-psyche / {id}-w* / shells child (info.json, ready marker, sessions.log ledger, spool.db, inbox, .idle/.more-done sentinels, auth token); (2) the registry address (registry::unregister_address); (3) the context store — ContextStore::remove_endpoint(id): the a-<id> branch+worktree + the <id>/ rows from every p-<project> branch (the same fn `fork --delete-source` already uses); (4) node-local trust rows keyed on the id — access.json + visibility.json. Reuse-heavy: it is `fork --delete-source` generalized (recursive perch remove + unregister + remove_endpoint) + the trust-record cleanup; `endpoint rename` already enumerates the same record set + uses the same offline-only gate. (v0.12.0)",
2026-06-21T05:16:14.2251729Z       "requiredStages": [
2026-06-21T05:16:14.2251828Z         "doc",
2026-06-21T05:16:14.2251933Z         "impl",
2026-06-21T05:16:14.2252030Z         "unit",
2026-06-21T05:16:14.2252124Z         "int"
2026-06-21T05:16:14.2252224Z       ],
2026-06-21T05:16:14.2252325Z       "stages": {
2026-06-21T05:16:14.2252430Z         "doc": {
2026-06-21T05:16:14.2252547Z           "complete": true,
2026-06-21T05:16:14.2252652Z           "evidence": [
2026-06-21T05:16:14.2252789Z             {
2026-06-21T05:16:14.2252916Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.2253022Z               "line": 163
2026-06-21T05:16:14.2253118Z             }
2026-06-21T05:16:14.2253217Z           ]
2026-06-21T05:16:14.2253318Z         },
2026-06-21T05:16:14.2253408Z         "impl": {
2026-06-21T05:16:14.2253517Z           "complete": true,
2026-06-21T05:16:14.2253624Z           "evidence": [
2026-06-21T05:16:14.2253728Z             {
2026-06-21T05:16:14.2253875Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-21T05:16:14.2253986Z               "line": 105
2026-06-21T05:16:14.2254095Z             },
2026-06-21T05:16:14.2254185Z             {
2026-06-21T05:16:14.2254315Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2254419Z               "line": 7219
2026-06-21T05:16:14.2254514Z             }
2026-06-21T05:16:14.2254606Z           ]
2026-06-21T05:16:14.2254705Z         },
2026-06-21T05:16:14.2254814Z         "int": {
2026-06-21T05:16:14.2254940Z           "complete": true,
2026-06-21T05:16:14.2255052Z           "evidence": [
2026-06-21T05:16:14.2255159Z             {
2026-06-21T05:16:14.2255283Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2255381Z               "line": 7384
2026-06-21T05:16:14.2255481Z             }
2026-06-21T05:16:14.2255587Z           ]
2026-06-21T05:16:14.2255786Z         },
2026-06-21T05:16:14.2255892Z         "unit": {
2026-06-21T05:16:14.2256006Z           "complete": true,
2026-06-21T05:16:14.2256115Z           "evidence": [
2026-06-21T05:16:14.2256221Z             {
2026-06-21T05:16:14.2256345Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2256459Z               "line": 7355
2026-06-21T05:16:14.2256555Z             }
2026-06-21T05:16:14.2256655Z           ]
2026-06-21T05:16:14.2256759Z         }
2026-06-21T05:16:14.2256856Z       }
2026-06-21T05:16:14.2256959Z     },
2026-06-21T05:16:14.2257059Z     {
2026-06-21T05:16:14.2257189Z       "id": "REQ-ENDPOINT-STOP-OFFLINE",
2026-06-21T05:16:14.2258600Z       "title": "H3: `spt endpoint stop <id>` marks the endpoint OFFLINE (alive=false), not merely de-readied. cmd_stop (cli.rs:2994-3010) removes the ready marker + unregisters the address but does NOT set status offline, so a stopped daemon-hosted endpoint still reports alive=true (status=online latch). FIX: add set_status(perch, STATUS_OFFLINE) to cmd_stop — folds with B2 (same setter). Unit: stop → is_perch_alive=false / alive=false. (v0.12.0)",
2026-06-21T05:16:14.2258721Z       "requiredStages": [
2026-06-21T05:16:14.2258820Z         "impl",
2026-06-21T05:16:14.2258925Z         "unit"
2026-06-21T05:16:14.2259117Z       ],
2026-06-21T05:16:14.2259221Z       "stages": {
2026-06-21T05:16:14.2259330Z         "doc": {
2026-06-21T05:16:14.2259441Z           "complete": false,
2026-06-21T05:16:14.2259545Z           "evidence": []
2026-06-21T05:16:14.2259645Z         },
2026-06-21T05:16:14.2259751Z         "impl": {
2026-06-21T05:16:14.2259869Z           "complete": true,
2026-06-21T05:16:14.2259995Z           "evidence": [
2026-06-21T05:16:14.2260103Z             {
2026-06-21T05:16:14.2260222Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2260328Z               "line": 3165
2026-06-21T05:16:14.2260428Z             }
2026-06-21T05:16:14.2260522Z           ]
2026-06-21T05:16:14.2260622Z         },
2026-06-21T05:16:14.2260754Z         "int": {
2026-06-21T05:16:14.2260867Z           "complete": false,
2026-06-21T05:16:14.2260977Z           "evidence": []
2026-06-21T05:16:14.2261073Z         },
2026-06-21T05:16:14.2261182Z         "unit": {
2026-06-21T05:16:14.2261282Z           "complete": true,
2026-06-21T05:16:14.2261387Z           "evidence": [
2026-06-21T05:16:14.2261482Z             {
2026-06-21T05:16:14.2261612Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2261712Z               "line": 7331
2026-06-21T05:16:14.2261811Z             }
2026-06-21T05:16:14.2261912Z           ]
2026-06-21T05:16:14.2262012Z         }
2026-06-21T05:16:14.2262107Z       }
2026-06-21T05:16:14.2262212Z     },
2026-06-21T05:16:14.2262317Z     {
2026-06-21T05:16:14.2262431Z       "id": "REQ-EP-1",
2026-06-21T05:16:14.2262585Z       "title": "Day-one endpoint types; open type system",
2026-06-21T05:16:14.2262703Z       "requiredStages": [
2026-06-21T05:16:14.2262808Z         "impl",
2026-06-21T05:16:14.2262919Z         "unit"
2026-06-21T05:16:14.2263018Z       ],
2026-06-21T05:16:14.2263131Z       "stages": {
2026-06-21T05:16:14.2263236Z         "doc": {
2026-06-21T05:16:14.2263344Z           "complete": false,
2026-06-21T05:16:14.2263448Z           "evidence": []
2026-06-21T05:16:14.2263549Z         },
2026-06-21T05:16:14.2263645Z         "impl": {
2026-06-21T05:16:14.2263753Z           "complete": true,
2026-06-21T05:16:14.2263859Z           "evidence": [
2026-06-21T05:16:14.2263969Z             {
2026-06-21T05:16:14.2264120Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-21T05:16:14.2264226Z               "line": 77
2026-06-21T05:16:14.2264326Z             },
2026-06-21T05:16:14.2264440Z             {
2026-06-21T05:16:14.2264579Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-21T05:16:14.2264688Z               "line": 94
2026-06-21T05:16:14.2264793Z             }
2026-06-21T05:16:14.2264893Z           ]
2026-06-21T05:16:14.2264984Z         },
2026-06-21T05:16:14.2265089Z         "int": {
2026-06-21T05:16:14.2265308Z           "complete": false,
2026-06-21T05:16:14.2265423Z           "evidence": []
2026-06-21T05:16:14.2265523Z         },
2026-06-21T05:16:14.2265622Z         "unit": {
2026-06-21T05:16:14.2265733Z           "complete": true,
2026-06-21T05:16:14.2265843Z           "evidence": [
2026-06-21T05:16:14.2265951Z             {
2026-06-21T05:16:14.2266094Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-21T05:16:14.2266200Z               "line": 161
2026-06-21T05:16:14.2266312Z             },
2026-06-21T05:16:14.2266409Z             {
2026-06-21T05:16:14.2266548Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-21T05:16:14.2266757Z               "line": 178
2026-06-21T05:16:14.2266857Z             }
2026-06-21T05:16:14.2266961Z           ]
2026-06-21T05:16:14.2267048Z         }
2026-06-21T05:16:14.2267148Z       }
2026-06-21T05:16:14.2267248Z     },
2026-06-21T05:16:14.2267348Z     {
2026-06-21T05:16:14.2267454Z       "id": "REQ-EP-2",
2026-06-21T05:16:14.2267653Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-21T05:16:14.2267763Z       "requiredStages": [
2026-06-21T05:16:14.2267867Z         "impl",
2026-06-21T05:16:14.2267973Z         "unit"
2026-06-21T05:16:14.2268078Z       ],
2026-06-21T05:16:14.2268177Z       "stages": {
2026-06-21T05:16:14.2268281Z         "doc": {
2026-06-21T05:16:14.2268391Z           "complete": false,
2026-06-21T05:16:14.2268503Z           "evidence": []
2026-06-21T05:16:14.2268598Z         },
2026-06-21T05:16:14.2268704Z         "impl": {
2026-06-21T05:16:14.2268809Z           "complete": true,
2026-06-21T05:16:14.2268908Z           "evidence": [
2026-06-21T05:16:14.2269100Z             {
2026-06-21T05:16:14.2269232Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-21T05:16:14.2269334Z               "line": 114
2026-06-21T05:16:14.2269438Z             },
2026-06-21T05:16:14.2269537Z             {
2026-06-21T05:16:14.2269677Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-21T05:16:14.2269786Z               "line": 131
2026-06-21T05:16:14.2269895Z             },
2026-06-21T05:16:14.2269992Z             {
2026-06-21T05:16:14.2270133Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-21T05:16:14.2270240Z               "line": 138
2026-06-21T05:16:14.2270344Z             }
2026-06-21T05:16:14.2270448Z           ]
2026-06-21T05:16:14.2270550Z         },
2026-06-21T05:16:14.2270650Z         "int": {
2026-06-21T05:16:14.2270759Z           "complete": false,
2026-06-21T05:16:14.2270869Z           "evidence": []
2026-06-21T05:16:14.2270969Z         },
2026-06-21T05:16:14.2271067Z         "unit": {
2026-06-21T05:16:14.2271192Z           "complete": true,
2026-06-21T05:16:14.2271287Z           "evidence": [
2026-06-21T05:16:14.2271394Z             {
2026-06-21T05:16:14.2271532Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-21T05:16:14.2271633Z               "line": 190
2026-06-21T05:16:14.2271737Z             },
2026-06-21T05:16:14.2271843Z             {
2026-06-21T05:16:14.2271977Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-21T05:16:14.2272085Z               "line": 208
2026-06-21T05:16:14.2272191Z             },
2026-06-21T05:16:14.2272291Z             {
2026-06-21T05:16:14.2272433Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-21T05:16:14.2272540Z               "line": 221
2026-06-21T05:16:14.2272639Z             }
2026-06-21T05:16:14.2272743Z           ]
2026-06-21T05:16:14.2272845Z         }
2026-06-21T05:16:14.2272944Z       }
2026-06-21T05:16:14.2273034Z     },
2026-06-21T05:16:14.2273136Z     {
2026-06-21T05:16:14.2273244Z       "id": "REQ-EP-3",
2026-06-21T05:16:14.2273465Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-21T05:16:14.2273582Z       "requiredStages": [
2026-06-21T05:16:14.2273686Z         "impl",
2026-06-21T05:16:14.2273796Z         "unit"
2026-06-21T05:16:14.2273899Z       ],
2026-06-21T05:16:14.2274008Z       "stages": {
2026-06-21T05:16:14.2274214Z         "doc": {
2026-06-21T05:16:14.2274328Z           "complete": false,
2026-06-21T05:16:14.2274448Z           "evidence": []
2026-06-21T05:16:14.2274548Z         },
2026-06-21T05:16:14.2274652Z         "impl": {
2026-06-21T05:16:14.2274754Z           "complete": true,
2026-06-21T05:16:14.2274862Z           "evidence": [
2026-06-21T05:16:14.2274967Z             {
2026-06-21T05:16:14.2275106Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-21T05:16:14.2275210Z               "line": 31
2026-06-21T05:16:14.2275310Z             },
2026-06-21T05:16:14.2275411Z             {
2026-06-21T05:16:14.2275549Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-21T05:16:14.2275778Z               "line": 49
2026-06-21T05:16:14.2275873Z             }
2026-06-21T05:16:14.2275974Z           ]
2026-06-21T05:16:14.2276079Z         },
2026-06-21T05:16:14.2276183Z         "int": {
2026-06-21T05:16:14.2276298Z           "complete": false,
2026-06-21T05:16:14.2276408Z           "evidence": []
2026-06-21T05:16:14.2276516Z         },
2026-06-21T05:16:14.2276611Z         "unit": {
2026-06-21T05:16:14.2276722Z           "complete": true,
2026-06-21T05:16:14.2276835Z           "evidence": [
2026-06-21T05:16:14.2276930Z             {
2026-06-21T05:16:14.2277069Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-21T05:16:14.2277174Z               "line": 156
2026-06-21T05:16:14.2277279Z             },
2026-06-21T05:16:14.2277379Z             {
2026-06-21T05:16:14.2277517Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-21T05:16:14.2277618Z               "line": 164
2026-06-21T05:16:14.2277723Z             },
2026-06-21T05:16:14.2277827Z             {
2026-06-21T05:16:14.2277961Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-21T05:16:14.2278061Z               "line": 177
2026-06-21T05:16:14.2278156Z             },
2026-06-21T05:16:14.2278248Z             {
2026-06-21T05:16:14.2278394Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-21T05:16:14.2278504Z               "line": 200
2026-06-21T05:16:14.2278610Z             },
2026-06-21T05:16:14.2278709Z             {
2026-06-21T05:16:14.2278841Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-21T05:16:14.2279040Z               "line": 216
2026-06-21T05:16:14.2279125Z             },
2026-06-21T05:16:14.2279230Z             {
2026-06-21T05:16:14.2279364Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-21T05:16:14.2279473Z               "line": 233
2026-06-21T05:16:14.2279569Z             }
2026-06-21T05:16:14.2279669Z           ]
2026-06-21T05:16:14.2279773Z         }
2026-06-21T05:16:14.2279875Z       }
2026-06-21T05:16:14.2279989Z     },
2026-06-21T05:16:14.2280088Z     {
2026-06-21T05:16:14.2280199Z       "id": "REQ-EP-4",
2026-06-21T05:16:14.2280360Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-21T05:16:14.2280475Z       "requiredStages": [
2026-06-21T05:16:14.2280580Z         "impl",
2026-06-21T05:16:14.2280675Z         "unit"
2026-06-21T05:16:14.2280780Z       ],
2026-06-21T05:16:14.2280886Z       "stages": {
2026-06-21T05:16:14.2280985Z         "doc": {
2026-06-21T05:16:14.2281095Z           "complete": false,
2026-06-21T05:16:14.2281215Z           "evidence": []
2026-06-21T05:16:14.2281309Z         },
2026-06-21T05:16:14.2281420Z         "impl": {
2026-06-21T05:16:14.2281530Z           "complete": true,
2026-06-21T05:16:14.2281637Z           "evidence": [
2026-06-21T05:16:14.2281742Z             {
2026-06-21T05:16:14.2281875Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T05:16:14.2281987Z               "line": 764
2026-06-21T05:16:14.2282088Z             },
2026-06-21T05:16:14.2282184Z             {
2026-06-21T05:16:14.2282335Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T05:16:14.2282442Z               "line": 1127
2026-06-21T05:16:14.2282542Z             },
2026-06-21T05:16:14.2282645Z             {
2026-06-21T05:16:14.2282790Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2283003Z               "line": 2117
2026-06-21T05:16:14.2283109Z             },
2026-06-21T05:16:14.2283214Z             {
2026-06-21T05:16:14.2283352Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T05:16:14.2283466Z               "line": 118
2026-06-21T05:16:14.2283570Z             },
2026-06-21T05:16:14.2283672Z             {
2026-06-21T05:16:14.2283818Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T05:16:14.2283919Z               "line": 699
2026-06-21T05:16:14.2284015Z             },
2026-06-21T05:16:14.2284114Z             {
2026-06-21T05:16:14.2284251Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T05:16:14.2284455Z               "line": 836
2026-06-21T05:16:14.2284559Z             },
2026-06-21T05:16:14.2284664Z             {
2026-06-21T05:16:14.2284802Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T05:16:14.2284921Z               "line": 271
2026-06-21T05:16:14.2285018Z             },
2026-06-21T05:16:14.2285127Z             {
2026-06-21T05:16:14.2285270Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T05:16:14.2285370Z               "line": 458
2026-06-21T05:16:14.2285470Z             },
2026-06-21T05:16:14.2285570Z             {
2026-06-21T05:16:14.2285713Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T05:16:14.2285822Z               "line": 1246
2026-06-21T05:16:14.2285928Z             }
2026-06-21T05:16:14.2286028Z           ]
2026-06-21T05:16:14.2286128Z         },
2026-06-21T05:16:14.2286229Z         "int": {
2026-06-21T05:16:14.2286328Z           "complete": false,
2026-06-21T05:16:14.2286443Z           "evidence": []
2026-06-21T05:16:14.2286539Z         },
2026-06-21T05:16:14.2286648Z         "unit": {
2026-06-21T05:16:14.2286757Z           "complete": true,
2026-06-21T05:16:14.2286868Z           "evidence": [
2026-06-21T05:16:14.2286972Z             {
2026-06-21T05:16:14.2287104Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T05:16:14.2287214Z               "line": 927
2026-06-21T05:16:14.2287315Z             },
2026-06-21T05:16:14.2287419Z             {
2026-06-21T05:16:14.2287567Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-21T05:16:14.2287672Z               "line": 76
2026-06-21T05:16:14.2287776Z             },
2026-06-21T05:16:14.2287873Z             {
2026-06-21T05:16:14.2288020Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-21T05:16:14.2288125Z               "line": 147
2026-06-21T05:16:14.2288230Z             }
2026-06-21T05:16:14.2288330Z           ]
2026-06-21T05:16:14.2288434Z         }
2026-06-21T05:16:14.2288540Z       }
2026-06-21T05:16:14.2288644Z     },
2026-06-21T05:16:14.2288739Z     {
2026-06-21T05:16:14.2288850Z       "id": "REQ-EP-5",
2026-06-21T05:16:14.2289605Z       "title": "Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope",
2026-06-21T05:16:14.2289718Z       "requiredStages": [
2026-06-21T05:16:14.2289824Z         "impl",
2026-06-21T05:16:14.2289919Z         "unit",
2026-06-21T05:16:14.2290023Z         "int"
2026-06-21T05:16:14.2290120Z       ],
2026-06-21T05:16:14.2290229Z       "stages": {
2026-06-21T05:16:14.2290333Z         "doc": {
2026-06-21T05:16:14.2290449Z           "complete": false,
2026-06-21T05:16:14.2290554Z           "evidence": []
2026-06-21T05:16:14.2290662Z         },
2026-06-21T05:16:14.2290764Z         "impl": {
2026-06-21T05:16:14.2290873Z           "complete": true,
2026-06-21T05:16:14.2290977Z           "evidence": [
2026-06-21T05:16:14.2291088Z             {
2026-06-21T05:16:14.2291250Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.2291355Z               "line": 367
2026-06-21T05:16:14.2291460Z             },
2026-06-21T05:16:14.2291560Z             {
2026-06-21T05:16:14.2291708Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-21T05:16:14.2291917Z               "line": 18
2026-06-21T05:16:14.2292023Z             },
2026-06-21T05:16:14.2292127Z             {
2026-06-21T05:16:14.2292273Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-21T05:16:14.2292383Z               "line": 63
2026-06-21T05:16:14.2292486Z             },
2026-06-21T05:16:14.2292590Z             {
2026-06-21T05:16:14.2292725Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-21T05:16:14.2292834Z               "line": 92
2026-06-21T05:16:14.2292938Z             },
2026-06-21T05:16:14.2293030Z             {
2026-06-21T05:16:14.2293181Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-21T05:16:14.2293373Z               "line": 167
2026-06-21T05:16:14.2293487Z             },
2026-06-21T05:16:14.2293578Z             {
2026-06-21T05:16:14.2297274Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-21T05:16:14.2297424Z               "line": 179
2026-06-21T05:16:14.2297542Z             },
2026-06-21T05:16:14.2297655Z             {
2026-06-21T05:16:14.2297846Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.2297965Z               "line": 114
2026-06-21T05:16:14.2298070Z             },
2026-06-21T05:16:14.2298171Z             {
2026-06-21T05:16:14.2298332Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T05:16:14.2298438Z               "line": 22
2026-06-21T05:16:14.2298538Z             },
2026-06-21T05:16:14.2298642Z             {
2026-06-21T05:16:14.2298790Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T05:16:14.2298900Z               "line": 145
2026-06-21T05:16:14.2299096Z             },
2026-06-21T05:16:14.2299200Z             {
2026-06-21T05:16:14.2299344Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T05:16:14.2299448Z               "line": 174
2026-06-21T05:16:14.2299552Z             },
2026-06-21T05:16:14.2299653Z             {
2026-06-21T05:16:14.2299782Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T05:16:14.2299886Z               "line": 196
2026-06-21T05:16:14.2299985Z             },
2026-06-21T05:16:14.2300081Z             {
2026-06-21T05:16:14.2300221Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T05:16:14.2300317Z               "line": 221
2026-06-21T05:16:14.2300418Z             },
2026-06-21T05:16:14.2300518Z             {
2026-06-21T05:16:14.2300661Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T05:16:14.2300766Z               "line": 247
2026-06-21T05:16:14.2300865Z             },
2026-06-21T05:16:14.2300961Z             {
2026-06-21T05:16:14.2301099Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T05:16:14.2301208Z               "line": 270
2026-06-21T05:16:14.2301310Z             },
2026-06-21T05:16:14.2301405Z             {
2026-06-21T05:16:14.2301552Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.2301662Z               "line": 104
2026-06-21T05:16:14.2301762Z             },
2026-06-21T05:16:14.2301857Z             {
2026-06-21T05:16:14.2301987Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2302095Z               "line": 6068
2026-06-21T05:16:14.2302196Z             },
2026-06-21T05:16:14.2302301Z             {
2026-06-21T05:16:14.2302415Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2302526Z               "line": 6202
2026-06-21T05:16:14.2302621Z             },
2026-06-21T05:16:14.2302725Z             {
2026-06-21T05:16:14.2302852Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2302953Z               "line": 6368
2026-06-21T05:16:14.2303061Z             },
2026-06-21T05:16:14.2303155Z             {
2026-06-21T05:16:14.2303281Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2303390Z               "line": 6896
2026-06-21T05:16:14.2303494Z             }
2026-06-21T05:16:14.2303605Z           ]
2026-06-21T05:16:14.2303704Z         },
2026-06-21T05:16:14.2303943Z         "int": {
2026-06-21T05:16:14.2304052Z           "complete": true,
2026-06-21T05:16:14.2304167Z           "evidence": [
2026-06-21T05:16:14.2304258Z             {
2026-06-21T05:16:14.2304414Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-21T05:16:14.2304520Z               "line": 16
2026-06-21T05:16:14.2304615Z             },
2026-06-21T05:16:14.2304714Z             {
2026-06-21T05:16:14.2304844Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-21T05:16:14.2304953Z               "line": 15
2026-06-21T05:16:14.2305053Z             }
2026-06-21T05:16:14.2305140Z           ]
2026-06-21T05:16:14.2305245Z         },
2026-06-21T05:16:14.2305439Z         "unit": {
2026-06-21T05:16:14.2305552Z           "complete": true,
2026-06-21T05:16:14.2305655Z           "evidence": [
2026-06-21T05:16:14.2305761Z             {
2026-06-21T05:16:14.2305905Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-21T05:16:14.2306018Z               "line": 246
2026-06-21T05:16:14.2306133Z             },
2026-06-21T05:16:14.2306233Z             {
2026-06-21T05:16:14.2306380Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-21T05:16:14.2306481Z               "line": 306
2026-06-21T05:16:14.2306572Z             },
2026-06-21T05:16:14.2306671Z             {
2026-06-21T05:16:14.2306819Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-21T05:16:14.2306914Z               "line": 363
2026-06-21T05:16:14.2307005Z             },
2026-06-21T05:16:14.2307102Z             {
2026-06-21T05:16:14.2307239Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T05:16:14.2307349Z               "line": 286
2026-06-21T05:16:14.2307454Z             },
2026-06-21T05:16:14.2307554Z             {
2026-06-21T05:16:14.2307692Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T05:16:14.2307797Z               "line": 338
2026-06-21T05:16:14.2307901Z             },
2026-06-21T05:16:14.2307998Z             {
2026-06-21T05:16:14.2308149Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.2308253Z               "line": 783
2026-06-21T05:16:14.2308344Z             },
2026-06-21T05:16:14.2308450Z             {
2026-06-21T05:16:14.2308573Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2308678Z               "line": 8751
2026-06-21T05:16:14.2308779Z             },
2026-06-21T05:16:14.2308878Z             {
2026-06-21T05:16:14.2309054Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2309154Z               "line": 8904
2026-06-21T05:16:14.2309260Z             },
2026-06-21T05:16:14.2309360Z             {
2026-06-21T05:16:14.2309492Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2309608Z               "line": 9493
2026-06-21T05:16:14.2309708Z             },
2026-06-21T05:16:14.2309807Z             {
2026-06-21T05:16:14.2309928Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2310032Z               "line": 9609
2026-06-21T05:16:14.2310132Z             }
2026-06-21T05:16:14.2310242Z           ]
2026-06-21T05:16:14.2310342Z         }
2026-06-21T05:16:14.2310446Z       }
2026-06-21T05:16:14.2310550Z     },
2026-06-21T05:16:14.2310650Z     {
2026-06-21T05:16:14.2310763Z       "id": "REQ-EP-6",
2026-06-21T05:16:14.2312269Z       "title": "Gateway type acceptance: a Gateway-typed perch binds (api bind --type, open type system — un-hardcode the live_agent default), advertises/addressable like any endpoint, owns shells (owner validation not agent-family-gated), subscribes to digests, and is the user-msg identity gate's user-backed origin (REQ-MSG-5); in-tree mock-gateway fixture (R-DOCS-2 pattern, no downstream adapter code). Cross-node WAN Gateway-origin (registry endpoint_type trust) tracked by REQ-MSG-6",
2026-06-21T05:16:14.2312389Z       "requiredStages": [
2026-06-21T05:16:14.2312495Z         "doc",
2026-06-21T05:16:14.2312598Z         "impl",
2026-06-21T05:16:14.2312699Z         "unit"
2026-06-21T05:16:14.2312795Z       ],
2026-06-21T05:16:14.2313014Z       "stages": {
2026-06-21T05:16:14.2313114Z         "doc": {
2026-06-21T05:16:14.2313224Z           "complete": true,
2026-06-21T05:16:14.2313336Z           "evidence": [
2026-06-21T05:16:14.2313427Z             {
2026-06-21T05:16:14.2313550Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.2313658Z               "line": 227
2026-06-21T05:16:14.2313754Z             }
2026-06-21T05:16:14.2313841Z           ]
2026-06-21T05:16:14.2313940Z         },
2026-06-21T05:16:14.2314049Z         "impl": {
2026-06-21T05:16:14.2314160Z           "complete": true,
2026-06-21T05:16:14.2314259Z           "evidence": [
2026-06-21T05:16:14.2314349Z             {
2026-06-21T05:16:14.2314607Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.2314703Z               "line": 212
2026-06-21T05:16:14.2314804Z             }
2026-06-21T05:16:14.2314903Z           ]
2026-06-21T05:16:14.2314994Z         },
2026-06-21T05:16:14.2315104Z         "int": {
2026-06-21T05:16:14.2315208Z           "complete": true,
2026-06-21T05:16:14.2315318Z           "evidence": [
2026-06-21T05:16:14.2315414Z             {
2026-06-21T05:16:14.2315566Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-21T05:16:14.2315667Z               "line": 18
2026-06-21T05:16:14.2315757Z             }
2026-06-21T05:16:14.2315865Z           ]
2026-06-21T05:16:14.2315965Z         },
2026-06-21T05:16:14.2316070Z         "unit": {
2026-06-21T05:16:14.2316178Z           "complete": true,
2026-06-21T05:16:14.2316287Z           "evidence": [
2026-06-21T05:16:14.2316388Z             {
2026-06-21T05:16:14.2316539Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T05:16:14.2316650Z               "line": 556
2026-06-21T05:16:14.2316750Z             },
2026-06-21T05:16:14.2316850Z             {
2026-06-21T05:16:14.2316979Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.2317083Z               "line": 904
2026-06-21T05:16:14.2317188Z             }
2026-06-21T05:16:14.2317275Z           ]
2026-06-21T05:16:14.2317375Z         }
2026-06-21T05:16:14.2317470Z       }
2026-06-21T05:16:14.2317574Z     },
2026-06-21T05:16:14.2317671Z     {
2026-06-21T05:16:14.2317766Z       "id": "REQ-EP-7",
2026-06-21T05:16:14.2319544Z       "title": "Durable live-role.md: a per-agent broad-purpose statement in tracked/agents/<id>/ beside live-context.md (replicates with the mind on the same a-<id> branch); renders FIRST at start-transition context injection (role -> live-context -> project-context); SOLE writer `spt endpoint role --overwrite <file>` — mechanical no-automated-writer guarantee (echo-commune ingest / signoff / Psyche reconcile structurally exclude it). The user-backed-origin hard gate on the writer is a deferred later tightening (rides the user-msg identity plumbing)",
2026-06-21T05:16:14.2319673Z       "requiredStages": [
2026-06-21T05:16:14.2319776Z         "doc",
2026-06-21T05:16:14.2319878Z         "impl",
2026-06-21T05:16:14.2319972Z         "unit"
2026-06-21T05:16:14.2320076Z       ],
2026-06-21T05:16:14.2320188Z       "stages": {
2026-06-21T05:16:14.2320286Z         "doc": {
2026-06-21T05:16:14.2320391Z           "complete": true,
2026-06-21T05:16:14.2320493Z           "evidence": [
2026-06-21T05:16:14.2320592Z             {
2026-06-21T05:16:14.2320706Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.2320812Z               "line": 490
2026-06-21T05:16:14.2320912Z             }
2026-06-21T05:16:14.2321011Z           ]
2026-06-21T05:16:14.2321106Z         },
2026-06-21T05:16:14.2321206Z         "impl": {
2026-06-21T05:16:14.2321313Z           "complete": true,
2026-06-21T05:16:14.2321418Z           "evidence": [
2026-06-21T05:16:14.2321519Z             {
2026-06-21T05:16:14.2321656Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T05:16:14.2321766Z               "line": 505
2026-06-21T05:16:14.2321858Z             },
2026-06-21T05:16:14.2321957Z             {
2026-06-21T05:16:14.2322076Z               "path": "crates/spt-live/src/resume.rs",
2026-06-21T05:16:14.2322186Z               "line": 87
2026-06-21T05:16:14.2322387Z             },
2026-06-21T05:16:14.2322486Z             {
2026-06-21T05:16:14.2322639Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T05:16:14.2322745Z               "line": 81
2026-06-21T05:16:14.2322853Z             },
2026-06-21T05:16:14.2322954Z             {
2026-06-21T05:16:14.2323102Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T05:16:14.2323211Z               "line": 166
2026-06-21T05:16:14.2323311Z             },
2026-06-21T05:16:14.2323413Z             {
2026-06-21T05:16:14.2323530Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2323636Z               "line": 1645
2026-06-21T05:16:14.2323835Z             }
2026-06-21T05:16:14.2323934Z           ]
2026-06-21T05:16:14.2324035Z         },
2026-06-21T05:16:14.2324129Z         "int": {
2026-06-21T05:16:14.2324242Z           "complete": false,
2026-06-21T05:16:14.2324353Z           "evidence": []
2026-06-21T05:16:14.2324453Z         },
2026-06-21T05:16:14.2324548Z         "unit": {
2026-06-21T05:16:14.2324658Z           "complete": true,
2026-06-21T05:16:14.2324768Z           "evidence": [
2026-06-21T05:16:14.2324862Z             {
2026-06-21T05:16:14.2324997Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T05:16:14.2325106Z               "line": 623
2026-06-21T05:16:14.2325205Z             },
2026-06-21T05:16:14.2325302Z             {
2026-06-21T05:16:14.2325430Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-21T05:16:14.2325539Z               "line": 212
2026-06-21T05:16:14.2325636Z             },
2026-06-21T05:16:14.2325740Z             {
2026-06-21T05:16:14.2325868Z               "path": "crates/spt-live/src/resume.rs",
2026-06-21T05:16:14.2325974Z               "line": 307
2026-06-21T05:16:14.2326078Z             },
2026-06-21T05:16:14.2326178Z             {
2026-06-21T05:16:14.2326308Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2326416Z               "line": 7724
2026-06-21T05:16:14.2326525Z             },
2026-06-21T05:16:14.2326611Z             {
2026-06-21T05:16:14.2326748Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2326856Z               "line": 7751
2026-06-21T05:16:14.2326948Z             }
2026-06-21T05:16:14.2327053Z           ]
2026-06-21T05:16:14.2327147Z         }
2026-06-21T05:16:14.2327244Z       }
2026-06-21T05:16:14.2327339Z     },
2026-06-21T05:16:14.2327433Z     {
2026-06-21T05:16:14.2327540Z       "id": "REQ-FRONT-1",
2026-06-21T05:16:14.2327739Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-21T05:16:14.2327845Z       "requiredStages": [],
2026-06-21T05:16:14.2327949Z       "stages": {
2026-06-21T05:16:14.2328058Z         "doc": {
2026-06-21T05:16:14.2328169Z           "complete": false,
2026-06-21T05:16:14.2328278Z           "evidence": []
2026-06-21T05:16:14.2328373Z         },
2026-06-21T05:16:14.2328469Z         "impl": {
2026-06-21T05:16:14.2328588Z           "complete": false,
2026-06-21T05:16:14.2328702Z           "evidence": []
2026-06-21T05:16:14.2328809Z         },
2026-06-21T05:16:14.2328903Z         "int": {
2026-06-21T05:16:14.2329094Z           "complete": false,
2026-06-21T05:16:14.2329195Z           "evidence": []
2026-06-21T05:16:14.2329293Z         },
2026-06-21T05:16:14.2329397Z         "unit": {
2026-06-21T05:16:14.2329503Z           "complete": false,
2026-06-21T05:16:14.2329603Z           "evidence": []
2026-06-21T05:16:14.2329697Z         }
2026-06-21T05:16:14.2329793Z       }
2026-06-21T05:16:14.2329894Z     },
2026-06-21T05:16:14.2329988Z     {
2026-06-21T05:16:14.2330118Z       "id": "REQ-HAZARD-ATTACH-WEDGE",
2026-06-21T05:16:14.2335465Z       "title": "A legitimately dead PTY child (real crash/kill) + an undrained operator pump must NOT wedge the broker for all other clients. ROOT (v0.12.0 real-harness defect): loopback attach output is a blocking write_all into a bounded 64KB tokio duplex (nethost.rs:1040,1090); when the operator's rc pump stops draining (tab closed) the buffer fills and write_all blocks forever (the 'loopback never hangs' assumption at nethost.rs:1103 is false), parking a worker in the 2-worker net runtime (nethost.rs:640); a couple of these saturate BOTH workers → every new attach / `endpoint run` stalls right after 'PUMP_IPC_READER: spawned' → 30s FIRST_EVENT_GRACE → 'no output / dead or wedged'; `daemon stop` cannot join the stuck workers. DISTINCT from the removed B1 path-(c) mutex deadlock. DISPOSITION = PROVE-DON'T-CHANGE (doyle GATE-PASS @e883f45, 2026-06-18): this ROOT is the SUPERSEDED v0.12.0 hypothesis — the post-L0 code ALREADY prevents the wedge, so NO fail-fast / worker-count code was added. serve_attach forwards fire-and-forget (net_stream_send op_id=None) and the broker-side send_stream is already BROKER-QUIC-DEADLINE-bounded (bounded_block_on, 10s); the loopback duplex is drained broker-INTERNALLY by the operator row's own read pump (RecvHalf::Loopback, retentive_cap==0 → evict-not-park) so a dead rc (a dropped IPC subscriber) never backs peer_w up; bounded_block_on parks the BROKER DISPATCH thread, not a net worker → no worker-pool exhaustion (full mechanism in the required_stages comment). Folds the status=online sub-check: a dead spt-hosted endpoint is marked OFFLINE within one reconcile tick on abrupt child death (broker exit-waiter reaps the session → B2 sees it absent) — PROVEN, no change. (v0.12.1)",
2026-06-21T05:16:14.2335828Z       "requiredStages": [
2026-06-21T05:16:14.2335933Z         "int"
2026-06-21T05:16:14.2336033Z       ],
2026-06-21T05:16:14.2336143Z       "stages": {
2026-06-21T05:16:14.2336243Z         "doc": {
2026-06-21T05:16:14.2336362Z           "complete": false,
2026-06-21T05:16:14.2336497Z           "evidence": []
2026-06-21T05:16:14.2336596Z         },
2026-06-21T05:16:14.2336705Z         "impl": {
2026-06-21T05:16:14.2336811Z           "complete": false,
2026-06-21T05:16:14.2336925Z           "evidence": []
2026-06-21T05:16:14.2337023Z         },
2026-06-21T05:16:14.2337133Z         "int": {
2026-06-21T05:16:14.2337242Z           "complete": true,
2026-06-21T05:16:14.2337369Z           "evidence": [
2026-06-21T05:16:14.2337470Z             {
2026-06-21T05:16:14.2337617Z               "path": "crates/spt/tests/attach_wedge_e2e.rs",
2026-06-21T05:16:14.2337727Z               "line": 300
2026-06-21T05:16:14.2337823Z             }
2026-06-21T05:16:14.2337923Z           ]
2026-06-21T05:16:14.2338017Z         },
2026-06-21T05:16:14.2338119Z         "unit": {
2026-06-21T05:16:14.2338223Z           "complete": false,
2026-06-21T05:16:14.2338327Z           "evidence": []
2026-06-21T05:16:14.2338429Z         }
2026-06-21T05:16:14.2338523Z       }
2026-06-21T05:16:14.2338623Z     },
2026-06-21T05:16:14.2338714Z     {
2026-06-21T05:16:14.2338848Z       "id": "REQ-HAZARD-BIND-CWD-UNSET",
2026-06-21T05:16:14.2341479Z       "title": "A bound endpoint's `info.cwd` is SET at bind so a freshly-created perch appears under its own project tab. ROOT (found, v0.13.0): `info.cwd` is NEVER set on bind — `cmd_bind` (spt-hosted) and `bind_from_seed` (harness-hosted) never thread cwd into `establish_perch`/`rec.cwd`. FIX: `cmd_bind` reads its own `current_dir` (the broker spawned it in `project_cwd`); `bind_from_seed` passes `seed.cwd` (already captured at seed time, currently DISCARDED). DISTINCT from REQ-PICKER-HISTORY-FRESH (v0.12.1) — that unioned cwd-origin into picker MEMBERSHIP but tested merge_origin_project with a PROVIDED origin; it never asserted `info.cwd` is actually set on bind, so a real `endpoint run` perch still had an empty cwd and the union had nothing to union. This is the v0.12.1 P1 'appears under its own project right away' claim that was REFUTED in the changelog — delivered for real here. (v0.13.0)",
2026-06-21T05:16:14.2341632Z       "requiredStages": [
2026-06-21T05:16:14.2341736Z         "impl",
2026-06-21T05:16:14.2341840Z         "unit",
2026-06-21T05:16:14.2341942Z         "int"
2026-06-21T05:16:14.2342032Z       ],
2026-06-21T05:16:14.2342140Z       "stages": {
2026-06-21T05:16:14.2342245Z         "doc": {
2026-06-21T05:16:14.2342477Z           "complete": false,
2026-06-21T05:16:14.2342581Z           "evidence": []
2026-06-21T05:16:14.2342678Z         },
2026-06-21T05:16:14.2342767Z         "impl": {
2026-06-21T05:16:14.2342882Z           "complete": true,
2026-06-21T05:16:14.2342987Z           "evidence": [
2026-06-21T05:16:14.2343086Z             {
2026-06-21T05:16:14.2343226Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.2343335Z               "line": 257
2026-06-21T05:16:14.2343434Z             }
2026-06-21T05:16:14.2343531Z           ]
2026-06-21T05:16:14.2343635Z         },
2026-06-21T05:16:14.2343739Z         "int": {
2026-06-21T05:16:14.2343850Z           "complete": true,
2026-06-21T05:16:14.2344064Z           "evidence": [
2026-06-21T05:16:14.2344165Z             {
2026-06-21T05:16:14.2344331Z               "path": "crates/spt/tests/bind_cwd_project_e2e.rs",
2026-06-21T05:16:14.2344436Z               "line": 93
2026-06-21T05:16:14.2344542Z             }
2026-06-21T05:16:14.2344641Z           ]
2026-06-21T05:16:14.2344742Z         },
2026-06-21T05:16:14.2344848Z         "unit": {
2026-06-21T05:16:14.2344955Z           "complete": true,
2026-06-21T05:16:14.2345059Z           "evidence": [
2026-06-21T05:16:14.2345160Z             {
2026-06-21T05:16:14.2345296Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.2345405Z               "line": 802
2026-06-21T05:16:14.2345511Z             },
2026-06-21T05:16:14.2345610Z             {
2026-06-21T05:16:14.2345744Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.2345850Z               "line": 824
2026-06-21T05:16:14.2345953Z             },
2026-06-21T05:16:14.2346059Z             {
2026-06-21T05:16:14.2346197Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.2346306Z               "line": 855
2026-06-21T05:16:14.2346417Z             }
2026-06-21T05:16:14.2346502Z           ]
2026-06-21T05:16:14.2346593Z         }
2026-06-21T05:16:14.2346693Z       }
2026-06-21T05:16:14.2346789Z     },
2026-06-21T05:16:14.2346893Z     {
2026-06-21T05:16:14.2347042Z       "id": "REQ-HAZARD-BRAIN-RESPAWN-PATH",
2026-06-21T05:16:14.2349589Z       "title": "The broker respawns the brain onto the APPLIED bytes, not the renamed old binary: the candidate-binary default is the canonical exe path captured ONCE at broker start, never a per-spawn std::env::current_exe() — on Linux current_exe (readlink /proc/self/exe) is inode-tracking and follows the `apply` rename (spt -> spt.old-N), so a resident broker would respawn the brain onto OLD bytes while recording `applied` (Windows GetModuleFileName is path-at-start, so Windows was green; ADR-0018 Q3 silently assumed path-string semantics). Backstop: promotion gates on bytes — a trial promotes only if brain.ready exe_hash == the staged artifact hash for this platform, else auto-rollback + loud notif (readiness != new-bytes was the false-success that recorded applied:8 over a v0.4.0 brain on kitsubito, 2026-06-11). KNOWN-HAZARDS 6.11.",
2026-06-21T05:16:14.2349727Z       "requiredStages": [
2026-06-21T05:16:14.2349846Z         "doc",
2026-06-21T05:16:14.2349948Z         "impl",
2026-06-21T05:16:14.2350051Z         "unit",
2026-06-21T05:16:14.2350152Z         "int"
2026-06-21T05:16:14.2350253Z       ],
2026-06-21T05:16:14.2350357Z       "stages": {
2026-06-21T05:16:14.2350460Z         "doc": {
2026-06-21T05:16:14.2350570Z           "complete": true,
2026-06-21T05:16:14.2350681Z           "evidence": [
2026-06-21T05:16:14.2350775Z             {
2026-06-21T05:16:14.2350914Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T05:16:14.2351014Z               "line": 333
2026-06-21T05:16:14.2351108Z             }
2026-06-21T05:16:14.2351243Z           ]
2026-06-21T05:16:14.2351338Z         },
2026-06-21T05:16:14.2351447Z         "impl": {
2026-06-21T05:16:14.2351553Z           "complete": true,
2026-06-21T05:16:14.2351667Z           "evidence": [
2026-06-21T05:16:14.2351771Z             {
2026-06-21T05:16:14.2351920Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2352159Z               "line": 494
2026-06-21T05:16:14.2352259Z             },
2026-06-21T05:16:14.2352353Z             {
2026-06-21T05:16:14.2352498Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2352615Z               "line": 499
2026-06-21T05:16:14.2352715Z             },
2026-06-21T05:16:14.2352815Z             {
2026-06-21T05:16:14.2352961Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2353060Z               "line": 874
2026-06-21T05:16:14.2353165Z             },
2026-06-21T05:16:14.2353267Z             {
2026-06-21T05:16:14.2353408Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2353614Z               "line": 915
2026-06-21T05:16:14.2353704Z             },
2026-06-21T05:16:14.2353805Z             {
2026-06-21T05:16:14.2353947Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2354062Z               "line": 926
2026-06-21T05:16:14.2354167Z             },
2026-06-21T05:16:14.2354281Z             {
2026-06-21T05:16:14.2354425Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.2354534Z               "line": 358
2026-06-21T05:16:14.2354638Z             }
2026-06-21T05:16:14.2354740Z           ]
2026-06-21T05:16:14.2354844Z         },
2026-06-21T05:16:14.2354948Z         "int": {
2026-06-21T05:16:14.2355050Z           "complete": true,
2026-06-21T05:16:14.2355159Z           "evidence": [
2026-06-21T05:16:14.2355249Z             {
2026-06-21T05:16:14.2355422Z               "path": "crates/spt/tests/brain_respawn_rename.rs",
2026-06-21T05:16:14.2355520Z               "line": 30
2026-06-21T05:16:14.2355624Z             }
2026-06-21T05:16:14.2355720Z           ]
2026-06-21T05:16:14.2355824Z         },
2026-06-21T05:16:14.2355927Z         "unit": {
2026-06-21T05:16:14.2356042Z           "complete": true,
2026-06-21T05:16:14.2356152Z           "evidence": [
2026-06-21T05:16:14.2356252Z             {
2026-06-21T05:16:14.2356391Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2356518Z               "line": 1493
2026-06-21T05:16:14.2356614Z             },
2026-06-21T05:16:14.2356720Z             {
2026-06-21T05:16:14.2356862Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2356977Z               "line": 1518
2026-06-21T05:16:14.2357076Z             },
2026-06-21T05:16:14.2357167Z             {
2026-06-21T05:16:14.2357316Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2357425Z               "line": 1535
2026-06-21T05:16:14.2357525Z             },
2026-06-21T05:16:14.2357626Z             {
2026-06-21T05:16:14.2357782Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2357883Z               "line": 1578
2026-06-21T05:16:14.2357989Z             }
2026-06-21T05:16:14.2358092Z           ]
2026-06-21T05:16:14.2358191Z         }
2026-06-21T05:16:14.2358282Z       }
2026-06-21T05:16:14.2358380Z     },
2026-06-21T05:16:14.2358484Z     {
2026-06-21T05:16:14.2358648Z       "id": "REQ-HAZARD-BRAIN-RESTART-LIFECYCLE-REHYDRATE",
2026-06-21T05:16:14.2361307Z       "title": "B4 (deepest): a bare brain restart (broker survives) REHYDRATES the live-agent lifecycle so post-restart endpoints are hosted + attachable. Today resume_sessions (brainproc.rs:186, brain.rs:797-809) re-subscribes to the broker's PTY sessions but ALL BrainLifecycle instances (lifecycle.rs:58-130; the ephemeral brain.rs:254-275) are LOST on restart → a post-restart live endpoint gets no livehost → its Psyche is never (re)hosted and new spawns die / can't attach until a FULL daemon reset (operator: perri's brain kill+restart wedged everything until a full daemon kill). FIX: on brain startup, rebuild a BrainLifecycle per resumed live-capable session — load the manifest from the adapter registry → instantiate → start the pulse — the rehydrate the resume no-op cannot do. Composes with B2 (the reconcile re-hosts from the honest on-disk status after rehydrate). (v0.12.0)",
2026-06-21T05:16:14.2361550Z       "requiredStages": [],
2026-06-21T05:16:14.2361664Z       "stages": {
2026-06-21T05:16:14.2361770Z         "doc": {
2026-06-21T05:16:14.2361879Z           "complete": false,
2026-06-21T05:16:14.2361984Z           "evidence": []
2026-06-21T05:16:14.2362084Z         },
2026-06-21T05:16:14.2362189Z         "impl": {
2026-06-21T05:16:14.2362308Z           "complete": false,
2026-06-21T05:16:14.2362414Z           "evidence": []
2026-06-21T05:16:14.2362504Z         },
2026-06-21T05:16:14.2362613Z         "int": {
2026-06-21T05:16:14.2362719Z           "complete": false,
2026-06-21T05:16:14.2362828Z           "evidence": []
2026-06-21T05:16:14.2363048Z         },
2026-06-21T05:16:14.2363148Z         "unit": {
2026-06-21T05:16:14.2363270Z           "complete": false,
2026-06-21T05:16:14.2363380Z           "evidence": []
2026-06-21T05:16:14.2363479Z         }
2026-06-21T05:16:14.2363577Z       }
2026-06-21T05:16:14.2363673Z     },
2026-06-21T05:16:14.2363774Z     {
2026-06-21T05:16:14.2363925Z       "id": "REQ-HAZARD-BRAIN-RESTART-PSYCHE-DUP",
2026-06-21T05:16:14.2367614Z       "title": "A bare brain restart leaves EXACTLY ONE `{id}-psyche` process per endpoint — no duplicate. On an abrupt brain death stop_host never runs (the LiveSet + owned child handles die with the brain) and Breap's job/group only reaps at DAEMON stop, so the PRIOR brain's Psyche stays ALIVE; the respawned brain's reconcile re-hosts a SECOND Psyche and overwrites the `{id}-psyche` perch pid, leaving the old one untracked + alive = a duplicate that lingers until daemon-stop (the operator's 'brain kill+restart wedged everything'). FIX: at brain start, BEFORE the first reconcile re-hosts, reap any pre-existing `{id}-psyche` orphan — ID-SPECIFICALLY (recycle-safe on the shared box, where sibling agents share the `claude` basename): scoped-kill the recorded pid ONLY IF it is alive AND its exe basename == the adapter's psyche program (normalize_basename) AND its COMMAND LINE contains the full psyche id `<id>-psyche` (baked via {id}); a sibling never carries THIS id, and any unreadable signal FAILS SAFE (decline to reap — a missed dup is bounded by Breap, a wrong-kill is catastrophic). CAVEAT: the cmdline carries `<id>-psyche` only when the adapter's psyche_init.command uses {id} (the norm); a non-{id} adapter safely MISSES the reap (today's behavior, Breap bounds it) — never a wrong-kill. (v0.12.0)",
2026-06-21T05:16:14.2367785Z       "requiredStages": [
2026-06-21T05:16:14.2367876Z         "impl",
2026-06-21T05:16:14.2367980Z         "unit",
2026-06-21T05:16:14.2368075Z         "int"
2026-06-21T05:16:14.2368177Z       ],
2026-06-21T05:16:14.2368276Z       "stages": {
2026-06-21T05:16:14.2368409Z         "doc": {
2026-06-21T05:16:14.2368525Z           "complete": false,
2026-06-21T05:16:14.2368623Z           "evidence": []
2026-06-21T05:16:14.2368723Z         },
2026-06-21T05:16:14.2368828Z         "impl": {
2026-06-21T05:16:14.2369040Z           "complete": true,
2026-06-21T05:16:14.2369140Z           "evidence": [
2026-06-21T05:16:14.2369260Z             {
2026-06-21T05:16:14.2369412Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2369517Z               "line": 570
2026-06-21T05:16:14.2369622Z             },
2026-06-21T05:16:14.2369721Z             {
2026-06-21T05:16:14.2369875Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2369989Z               "line": 594
2026-06-21T05:16:14.2370085Z             },
2026-06-21T05:16:14.2370189Z             {
2026-06-21T05:16:14.2370332Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2370434Z               "line": 620
2026-06-21T05:16:14.2370532Z             },
2026-06-21T05:16:14.2370642Z             {
2026-06-21T05:16:14.2370786Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2370890Z               "line": 679
2026-06-21T05:16:14.2371000Z             },
2026-06-21T05:16:14.2371097Z             {
2026-06-21T05:16:14.2371238Z               "path": "crates/spt-store/src/proc.rs",
2026-06-21T05:16:14.2371449Z               "line": 89
2026-06-21T05:16:14.2371552Z             },
2026-06-21T05:16:14.2371657Z             {
2026-06-21T05:16:14.2371782Z               "path": "crates/spt-store/src/proc.rs",
2026-06-21T05:16:14.2371895Z               "line": 134
2026-06-21T05:16:14.2371991Z             }
2026-06-21T05:16:14.2372096Z           ]
2026-06-21T05:16:14.2372191Z         },
2026-06-21T05:16:14.2372286Z         "int": {
2026-06-21T05:16:14.2372401Z           "complete": true,
2026-06-21T05:16:14.2372496Z           "evidence": [
2026-06-21T05:16:14.2372606Z             {
2026-06-21T05:16:14.2372787Z               "path": "crates/spt/tests/brain_restart_psyche_dup_e2e.rs",
2026-06-21T05:16:14.2373007Z               "line": 20
2026-06-21T05:16:14.2373116Z             }
2026-06-21T05:16:14.2373216Z           ]
2026-06-21T05:16:14.2373318Z         },
2026-06-21T05:16:14.2373416Z         "unit": {
2026-06-21T05:16:14.2373526Z           "complete": true,
2026-06-21T05:16:14.2373637Z           "evidence": [
2026-06-21T05:16:14.2373731Z             {
2026-06-21T05:16:14.2373882Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2373987Z               "line": 1047
2026-06-21T05:16:14.2374090Z             },
2026-06-21T05:16:14.2374180Z             {
2026-06-21T05:16:14.2374315Z               "path": "crates/spt-store/src/proc.rs",
2026-06-21T05:16:14.2374424Z               "line": 445
2026-06-21T05:16:14.2374524Z             }
2026-06-21T05:16:14.2374625Z           ]
2026-06-21T05:16:14.2374734Z         }
2026-06-21T05:16:14.2374833Z       }
2026-06-21T05:16:14.2374920Z     },
2026-06-21T05:16:14.2375011Z     {
2026-06-21T05:16:14.2375168Z       "id": "REQ-HAZARD-BROKER-PROCESS-ISOLATION",
2026-06-21T05:16:14.2377792Z       "title": "Broker and brain are separate processes: the broker runs as its own long-lived per-machine process that survives every brain restart, so a routine (brain-only) self-update restarts the brain onto the swapped binary while every hosted endpoint (PTY child, live QUIC conn, listening socket) stays untouched at the PROCESS level. The in-process-thread broker (daemon.rs:165-170) is a regression that silently unrealizes REQ-UPD-3 — apply degrades to an in-process Brain::handoff no-op and new code does not run until an unrelated restart (KNOWN-HAZARDS 6.7). Evidence must prove process-level survival (SPIKE-01/03 productionized as int: PTY child + live QUIC survive a brain-PROCESS restart onto a swapped binary), re-pointing the regression-masked in-process int tags currently on REQ-DAEMON-2 / REQ-UPD-3 (ADR-0018).",
2026-06-21T05:16:14.2377912Z       "requiredStages": [
2026-06-21T05:16:14.2378010Z         "doc",
2026-06-21T05:16:14.2378117Z         "impl",
2026-06-21T05:16:14.2378225Z         "unit",
2026-06-21T05:16:14.2378321Z         "int"
2026-06-21T05:16:14.2378422Z       ],
2026-06-21T05:16:14.2378526Z       "stages": {
2026-06-21T05:16:14.2378626Z         "doc": {
2026-06-21T05:16:14.2378751Z           "complete": true,
2026-06-21T05:16:14.2378878Z           "evidence": [
2026-06-21T05:16:14.2379052Z             {
2026-06-21T05:16:14.2379175Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T05:16:14.2379288Z               "line": 302
2026-06-21T05:16:14.2379388Z             }
2026-06-21T05:16:14.2379487Z           ]
2026-06-21T05:16:14.2379590Z         },
2026-06-21T05:16:14.2379691Z         "impl": {
2026-06-21T05:16:14.2379797Z           "complete": true,
2026-06-21T05:16:14.2379905Z           "evidence": [
2026-06-21T05:16:14.2380006Z             {
2026-06-21T05:16:14.2380154Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T05:16:14.2380258Z               "line": 108
2026-06-21T05:16:14.2380359Z             },
2026-06-21T05:16:14.2380459Z             {
2026-06-21T05:16:14.2380592Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T05:16:14.2380703Z               "line": 843
2026-06-21T05:16:14.2380812Z             },
2026-06-21T05:16:14.2380940Z             {
2026-06-21T05:16:14.2381078Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T05:16:14.2381308Z               "line": 1043
2026-06-21T05:16:14.2381412Z             },
2026-06-21T05:16:14.2381507Z             {
2026-06-21T05:16:14.2381652Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2381755Z               "line": 23
2026-06-21T05:16:14.2381851Z             },
2026-06-21T05:16:14.2381952Z             {
2026-06-21T05:16:14.2382088Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2382192Z               "line": 113
2026-06-21T05:16:14.2382299Z             },
2026-06-21T05:16:14.2382398Z             {
2026-06-21T05:16:14.2382642Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2382746Z               "line": 158
2026-06-21T05:16:14.2382851Z             },
2026-06-21T05:16:14.2382952Z             {
2026-06-21T05:16:14.2383080Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2383195Z               "line": 218
2026-06-21T05:16:14.2383304Z             },
2026-06-21T05:16:14.2383409Z             {
2026-06-21T05:16:14.2383558Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2383662Z               "line": 261
2026-06-21T05:16:14.2383767Z             },
2026-06-21T05:16:14.2383868Z             {
2026-06-21T05:16:14.2384019Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2384115Z               "line": 275
2026-06-21T05:16:14.2384221Z             },
2026-06-21T05:16:14.2384319Z             {
2026-06-21T05:16:14.2384452Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2384566Z               "line": 320
2026-06-21T05:16:14.2384665Z             },
2026-06-21T05:16:14.2384769Z             {
2026-06-21T05:16:14.2384909Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2385008Z               "line": 347
2026-06-21T05:16:14.2385113Z             },
2026-06-21T05:16:14.2385214Z             {
2026-06-21T05:16:14.2385413Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2385514Z               "line": 359
2026-06-21T05:16:14.2385618Z             },
2026-06-21T05:16:14.2385718Z             {
2026-06-21T05:16:14.2385857Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2385971Z               "line": 373
2026-06-21T05:16:14.2386067Z             },
2026-06-21T05:16:14.2386172Z             {
2026-06-21T05:16:14.2386310Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2386421Z               "line": 400
2026-06-21T05:16:14.2386524Z             },
2026-06-21T05:16:14.2386610Z             {
2026-06-21T05:16:14.2386764Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2386867Z               "line": 643
2026-06-21T05:16:14.2386977Z             },
2026-06-21T05:16:14.2387074Z             {
2026-06-21T05:16:14.2387220Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2387338Z               "line": 989
2026-06-21T05:16:14.2387434Z             },
2026-06-21T05:16:14.2387527Z             {
2026-06-21T05:16:14.2387665Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2387776Z               "line": 260
2026-06-21T05:16:14.2387875Z             },
2026-06-21T05:16:14.2387980Z             {
2026-06-21T05:16:14.2388123Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2388227Z               "line": 1143
2026-06-21T05:16:14.2388334Z             },
2026-06-21T05:16:14.2388434Z             {
2026-06-21T05:16:14.2388566Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2388672Z               "line": 1215
2026-06-21T05:16:14.2388781Z             },
2026-06-21T05:16:14.2388876Z             {
2026-06-21T05:16:14.2389082Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2389195Z               "line": 1227
2026-06-21T05:16:14.2389293Z             },
2026-06-21T05:16:14.2389515Z             {
2026-06-21T05:16:14.2389655Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2389754Z               "line": 1842
2026-06-21T05:16:14.2389853Z             },
2026-06-21T05:16:14.2389953Z             {
2026-06-21T05:16:14.2390085Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.2390194Z               "line": 188
2026-06-21T05:16:14.2390299Z             },
2026-06-21T05:16:14.2390400Z             {
2026-06-21T05:16:14.2390527Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.2390643Z               "line": 265
2026-06-21T05:16:14.2390742Z             },
2026-06-21T05:16:14.2390943Z             {
2026-06-21T05:16:14.2391081Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.2391191Z               "line": 276
2026-06-21T05:16:14.2391296Z             },
2026-06-21T05:16:14.2391396Z             {
2026-06-21T05:16:14.2391534Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.2391653Z               "line": 329
2026-06-21T05:16:14.2391753Z             },
2026-06-21T05:16:14.2391854Z             {
2026-06-21T05:16:14.2392005Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-21T05:16:14.2392111Z               "line": 56
2026-06-21T05:16:14.2392212Z             },
2026-06-21T05:16:14.2392315Z             {
2026-06-21T05:16:14.2392455Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-21T05:16:14.2392565Z               "line": 188
2026-06-21T05:16:14.2392667Z             },
2026-06-21T05:16:14.2392762Z             {
2026-06-21T05:16:14.2392907Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-21T05:16:14.2395864Z               "line": 82
2026-06-21T05:16:14.2395997Z             },
2026-06-21T05:16:14.2396093Z             {
2026-06-21T05:16:14.2396264Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.2396370Z               "line": 308
2026-06-21T05:16:14.2396474Z             },
2026-06-21T05:16:14.2396578Z             {
2026-06-21T05:16:14.2396727Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T05:16:14.2396836Z               "line": 424
2026-06-21T05:16:14.2396937Z             },
2026-06-21T05:16:14.2397042Z             {
2026-06-21T05:16:14.2397170Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2397286Z               "line": 2006
2026-06-21T05:16:14.2397376Z             }
2026-06-21T05:16:14.2397475Z           ]
2026-06-21T05:16:14.2397567Z         },
2026-06-21T05:16:14.2397667Z         "int": {
2026-06-21T05:16:14.2397789Z           "complete": true,
2026-06-21T05:16:14.2397899Z           "evidence": [
2026-06-21T05:16:14.2398003Z             {
2026-06-21T05:16:14.2398153Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-21T05:16:14.2398259Z               "line": 57
2026-06-21T05:16:14.2398364Z             },
2026-06-21T05:16:14.2398464Z             {
2026-06-21T05:16:14.2398603Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-21T05:16:14.2398708Z               "line": 41
2026-06-21T05:16:14.2398811Z             }
2026-06-21T05:16:14.2398913Z           ]
2026-06-21T05:16:14.2399083Z         },
2026-06-21T05:16:14.2399184Z         "unit": {
2026-06-21T05:16:14.2399294Z           "complete": true,
2026-06-21T05:16:14.2399398Z           "evidence": [
2026-06-21T05:16:14.2399499Z             {
2026-06-21T05:16:14.2399656Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T05:16:14.2399765Z               "line": 532
2026-06-21T05:16:14.2399867Z             },
2026-06-21T05:16:14.2399975Z             {
2026-06-21T05:16:14.2400104Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T05:16:14.2400215Z               "line": 757
2026-06-21T05:16:14.2400314Z             },
2026-06-21T05:16:14.2400413Z             {
2026-06-21T05:16:14.2400551Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2400659Z               "line": 1067
2026-06-21T05:16:14.2400763Z             },
2026-06-21T05:16:14.2400993Z             {
2026-06-21T05:16:14.2401141Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2401245Z               "line": 1101
2026-06-21T05:16:14.2401349Z             },
2026-06-21T05:16:14.2401451Z             {
2026-06-21T05:16:14.2401589Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2401697Z               "line": 1143
2026-06-21T05:16:14.2401804Z             },
2026-06-21T05:16:14.2401898Z             {
2026-06-21T05:16:14.2402042Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2402147Z               "line": 1215
2026-06-21T05:16:14.2402347Z             },
2026-06-21T05:16:14.2402472Z             {
2026-06-21T05:16:14.2402637Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2402734Z               "line": 1228
2026-06-21T05:16:14.2402838Z             },
2026-06-21T05:16:14.2402933Z             {
2026-06-21T05:16:14.2403063Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2403172Z               "line": 1251
2026-06-21T05:16:14.2403275Z             },
2026-06-21T05:16:14.2403376Z             {
2026-06-21T05:16:14.2403510Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2403618Z               "line": 1277
2026-06-21T05:16:14.2403724Z             },
2026-06-21T05:16:14.2403820Z             {
2026-06-21T05:16:14.2403957Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2404063Z               "line": 1291
2026-06-21T05:16:14.2404168Z             },
2026-06-21T05:16:14.2404262Z             {
2026-06-21T05:16:14.2404397Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2404515Z               "line": 1315
2026-06-21T05:16:14.2404615Z             },
2026-06-21T05:16:14.2404712Z             {
2026-06-21T05:16:14.2404853Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2404969Z               "line": 1447
2026-06-21T05:16:14.2405073Z             },
2026-06-21T05:16:14.2405182Z             {
2026-06-21T05:16:14.2405327Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2405435Z               "line": 1623
2026-06-21T05:16:14.2405539Z             },
2026-06-21T05:16:14.2405639Z             {
2026-06-21T05:16:14.2405785Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2405889Z               "line": 1678
2026-06-21T05:16:14.2406000Z             },
2026-06-21T05:16:14.2406104Z             {
2026-06-21T05:16:14.2406238Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2406334Z               "line": 1724
2026-06-21T05:16:14.2406442Z             },
2026-06-21T05:16:14.2406533Z             {
2026-06-21T05:16:14.2406677Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2406781Z               "line": 1769
2026-06-21T05:16:14.2406887Z             },
2026-06-21T05:16:14.2406982Z             {
2026-06-21T05:16:14.2407129Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2407226Z               "line": 1813
2026-06-21T05:16:14.2407330Z             },
2026-06-21T05:16:14.2407430Z             {
2026-06-21T05:16:14.2407570Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2407677Z               "line": 1855
2026-06-21T05:16:14.2407778Z             },
2026-06-21T05:16:14.2407870Z             {
2026-06-21T05:16:14.2408011Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2408122Z               "line": 2176
2026-06-21T05:16:14.2408227Z             },
2026-06-21T05:16:14.2408326Z             {
2026-06-21T05:16:14.2408473Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-21T05:16:14.2408577Z               "line": 217
2026-06-21T05:16:14.2408676Z             },
2026-06-21T05:16:14.2408766Z             {
2026-06-21T05:16:14.2408906Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-21T05:16:14.2409191Z               "line": 233
2026-06-21T05:16:14.2409282Z             },
2026-06-21T05:16:14.2409385Z             {
2026-06-21T05:16:14.2409525Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-21T05:16:14.2409629Z               "line": 254
2026-06-21T05:16:14.2409730Z             },
2026-06-21T05:16:14.2409830Z             {
2026-06-21T05:16:14.2409978Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-21T05:16:14.2410078Z               "line": 265
2026-06-21T05:16:14.2410183Z             },
2026-06-21T05:16:14.2410278Z             {
2026-06-21T05:16:14.2410422Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-21T05:16:14.2410617Z               "line": 278
2026-06-21T05:16:14.2410718Z             },
2026-06-21T05:16:14.2410822Z             {
2026-06-21T05:16:14.2410963Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-21T05:16:14.2411069Z               "line": 289
2026-06-21T05:16:14.2411167Z             },
2026-06-21T05:16:14.2411270Z             {
2026-06-21T05:16:14.2411409Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-21T05:16:14.2411520Z               "line": 301
2026-06-21T05:16:14.2411623Z             },
2026-06-21T05:16:14.2411725Z             {
2026-06-21T05:16:14.2411858Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-21T05:16:14.2411958Z               "line": 312
2026-06-21T05:16:14.2412059Z             },
2026-06-21T05:16:14.2412158Z             {
2026-06-21T05:16:14.2412292Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-21T05:16:14.2412421Z               "line": 323
2026-06-21T05:16:14.2412530Z             },
2026-06-21T05:16:14.2412640Z             {
2026-06-21T05:16:14.2412773Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-21T05:16:14.2412882Z               "line": 332
2026-06-21T05:16:14.2412989Z             },
2026-06-21T05:16:14.2413088Z             {
2026-06-21T05:16:14.2413231Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-21T05:16:14.2413347Z               "line": 342
2026-06-21T05:16:14.2413450Z             },
2026-06-21T05:16:14.2413536Z             {
2026-06-21T05:16:14.2413676Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-21T05:16:14.2413788Z               "line": 358
2026-06-21T05:16:14.2413883Z             },
2026-06-21T05:16:14.2413989Z             {
2026-06-21T05:16:14.2414121Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.2414231Z               "line": 758
2026-06-21T05:16:14.2414332Z             },
2026-06-21T05:16:14.2414436Z             {
2026-06-21T05:16:14.2414580Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.2414684Z               "line": 794
2026-06-21T05:16:14.2414788Z             },
2026-06-21T05:16:14.2414890Z             {
2026-06-21T05:16:14.2415022Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T05:16:14.2415117Z               "line": 966
2026-06-21T05:16:14.2415224Z             },
2026-06-21T05:16:14.2415337Z             {
2026-06-21T05:16:14.2415476Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-21T05:16:14.2415582Z               "line": 145
2026-06-21T05:16:14.2415680Z             },
2026-06-21T05:16:14.2415781Z             {
2026-06-21T05:16:14.2415916Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-21T05:16:14.2416023Z               "line": 224
2026-06-21T05:16:14.2416127Z             },
2026-06-21T05:16:14.2416223Z             {
2026-06-21T05:16:14.2416369Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-21T05:16:14.2416474Z               "line": 293
2026-06-21T05:16:14.2416579Z             },
2026-06-21T05:16:14.2416679Z             {
2026-06-21T05:16:14.2416822Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-21T05:16:14.2416937Z               "line": 17
2026-06-21T05:16:14.2417031Z             },
2026-06-21T05:16:14.2417132Z             {
2026-06-21T05:16:14.2417266Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-21T05:16:14.2417466Z               "line": 104
2026-06-21T05:16:14.2417575Z             }
2026-06-21T05:16:14.2417670Z           ]
2026-06-21T05:16:14.2417767Z         }
2026-06-21T05:16:14.2417866Z       }
2026-06-21T05:16:14.2417975Z     },
2026-06-21T05:16:14.2418072Z     {
2026-06-21T05:16:14.2418219Z       "id": "REQ-HAZARD-BROKER-QUIC-DEADLINE",
2026-06-21T05:16:14.2421382Z       "title": "The broker bounds every brain-waiting QUIC op (dial / open_stream / send_stream) so a black-holed or dead peer fails PROMPTLY with an ORDINARY error the broker REPLIES, never an unbounded await. The bound (< the brain's 30s PUMP_PEER_IO_TIMEOUT so the BROKER fires first) surfaces to the pump as a normal broker error reply → peer_outcome's non-TimedOut arm → drop conn + redial next tick, the round CONTINUES and the heartbeat keeps advancing — it must NEVER manifest as the brain's own read-deadline (the A-half poison → supervised-restart path REQ-HAZARD-PUMP-IPC-DEADLINE guards). Exactly-once is preserved: a timed-out journaled op fails INSIDE its apply_once closure so no phantom conn_id/stream_id is recorded and a fresh tick re-dials cleanly. The happy path is unchanged (a live peer completes with zero added latency; the bound only bites a non-responsive peer). This is the ROOT-cause cure for the 2.2h hfenduleam pump wedge — a dead roster peer whose QUIC path the broker awaited unbounded — recurring on hfenduleam 2026-06-16.",
2026-06-21T05:16:14.2421653Z       "requiredStages": [
2026-06-21T05:16:14.2421751Z         "doc",
2026-06-21T05:16:14.2421859Z         "impl",
2026-06-21T05:16:14.2421961Z         "unit",
2026-06-21T05:16:14.2422066Z         "int"
2026-06-21T05:16:14.2422188Z       ],
2026-06-21T05:16:14.2422299Z       "stages": {
2026-06-21T05:16:14.2422404Z         "doc": {
2026-06-21T05:16:14.2422508Z           "complete": true,
2026-06-21T05:16:14.2422623Z           "evidence": [
2026-06-21T05:16:14.2422723Z             {
2026-06-21T05:16:14.2422857Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T05:16:14.2422986Z               "line": 388
2026-06-21T05:16:14.2423090Z             }
2026-06-21T05:16:14.2423190Z           ]
2026-06-21T05:16:14.2423291Z         },
2026-06-21T05:16:14.2423396Z         "impl": {
2026-06-21T05:16:14.2423505Z           "complete": true,
2026-06-21T05:16:14.2423610Z           "evidence": [
2026-06-21T05:16:14.2423710Z             {
2026-06-21T05:16:14.2423859Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T05:16:14.2423953Z               "line": 773
2026-06-21T05:16:14.2424058Z             },
2026-06-21T05:16:14.2424159Z             {
2026-06-21T05:16:14.2424292Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T05:16:14.2424414Z               "line": 796
2026-06-21T05:16:14.2424496Z             }
2026-06-21T05:16:14.2424597Z           ]
2026-06-21T05:16:14.2424700Z         },
2026-06-21T05:16:14.2424791Z         "int": {
2026-06-21T05:16:14.2424897Z           "complete": true,
2026-06-21T05:16:14.2425006Z           "evidence": [
2026-06-21T05:16:14.2425116Z             {
2026-06-21T05:16:14.2425264Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-21T05:16:14.2425372Z               "line": 228
2026-06-21T05:16:14.2425474Z             },
2026-06-21T05:16:14.2425573Z             {
2026-06-21T05:16:14.2425711Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-21T05:16:14.2425808Z               "line": 468
2026-06-21T05:16:14.2425911Z             }
2026-06-21T05:16:14.2426016Z           ]
2026-06-21T05:16:14.2426118Z         },
2026-06-21T05:16:14.2426222Z         "unit": {
2026-06-21T05:16:14.2426331Z           "complete": true,
2026-06-21T05:16:14.2426447Z           "evidence": [
2026-06-21T05:16:14.2426555Z             {
2026-06-21T05:16:14.2426697Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T05:16:14.2426798Z               "line": 1495
2026-06-21T05:16:14.2426905Z             }
2026-06-21T05:16:14.2427005Z           ]
2026-06-21T05:16:14.2427106Z         }
2026-06-21T05:16:14.2427310Z       }
2026-06-21T05:16:14.2427406Z     },
2026-06-21T05:16:14.2427507Z     {
2026-06-21T05:16:14.2427653Z       "id": "REQ-HAZARD-BROKER-SEED-WIRE-SKEW",
2026-06-21T05:16:14.2431346Z       "title": "A daemon-state wire-format change (e.g. the v0.9.0 adapter-agnostic Seed) does NOT take effect until a DELIBERATE full broker restart: the broker serves the seed-control channel and is RESIDENT across a brain-only self-update (ADR-0004 no-terminate-during-update forbids auto-killing it), so a NEW-version CLI talking to a still-resident OLD broker fails the seed handshake — the old broker cannot deserialize the new Seed (its formerly-required `adapter` field is gone) and drops the conn without an ack, which surfaces to the CLI as a raw UnexpectedEof 'failed to fill whole buffer'. spt-core must (a) surface an ACTIONABLE diagnostic on that seed-ack EOF (name the stale-broker cause + the `spt daemon stop` fix — the broker restarts on the next api call), never the cryptic io error; and (b) document the operational rule (a deliberate broker restart is required on any daemon-state wire change — NOT automatic) + the FORWARD discipline (daemon-state/Seed schema changes stay additive + serde-default so a resident OLD broker tolerates a NEW CLI across a brain-only update; note this would NOT have rescued 0.9.0 itself, since the old broker's `adapter` was a required field). perri PREP-4 FINDING 1 (v0.9.0 CLI vs stale 0.8.x broker).",
2026-06-21T05:16:14.2431585Z       "requiredStages": [
2026-06-21T05:16:14.2431684Z         "doc",
2026-06-21T05:16:14.2431785Z         "impl",
2026-06-21T05:16:14.2431896Z         "unit"
2026-06-21T05:16:14.2431994Z       ],
2026-06-21T05:16:14.2432121Z       "stages": {
2026-06-21T05:16:14.2432218Z         "doc": {
2026-06-21T05:16:14.2432325Z           "complete": true,
2026-06-21T05:16:14.2432424Z           "evidence": [
2026-06-21T05:16:14.2432525Z             {
2026-06-21T05:16:14.2432658Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T05:16:14.2432792Z               "line": 395
2026-06-21T05:16:14.2432898Z             }
2026-06-21T05:16:14.2433001Z           ]
2026-06-21T05:16:14.2433092Z         },
2026-06-21T05:16:14.2433188Z         "impl": {
2026-06-21T05:16:14.2433298Z           "complete": true,
2026-06-21T05:16:14.2433397Z           "evidence": [
2026-06-21T05:16:14.2433494Z             {
2026-06-21T05:16:14.2433636Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.2433746Z               "line": 75
2026-06-21T05:16:14.2433846Z             }
2026-06-21T05:16:14.2433946Z           ]
2026-06-21T05:16:14.2434041Z         },
2026-06-21T05:16:14.2434142Z         "int": {
2026-06-21T05:16:14.2434265Z           "complete": false,
2026-06-21T05:16:14.2434366Z           "evidence": []
2026-06-21T05:16:14.2434471Z         },
2026-06-21T05:16:14.2434565Z         "unit": {
2026-06-21T05:16:14.2434671Z           "complete": true,
2026-06-21T05:16:14.2434777Z           "evidence": [
2026-06-21T05:16:14.2434880Z             {
2026-06-21T05:16:14.2435003Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.2435109Z               "line": 632
2026-06-21T05:16:14.2435218Z             }
2026-06-21T05:16:14.2435313Z           ]
2026-06-21T05:16:14.2435419Z         }
2026-06-21T05:16:14.2435519Z       }
2026-06-21T05:16:14.2435618Z     },
2026-06-21T05:16:14.2435705Z     {
2026-06-21T05:16:14.2435834Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-21T05:16:14.2436030Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-21T05:16:14.2436138Z       "requiredStages": [
2026-06-21T05:16:14.2436233Z         "impl",
2026-06-21T05:16:14.2436335Z         "unit"
2026-06-21T05:16:14.2436444Z       ],
2026-06-21T05:16:14.2436548Z       "stages": {
2026-06-21T05:16:14.2436655Z         "doc": {
2026-06-21T05:16:14.2436768Z           "complete": false,
2026-06-21T05:16:14.2436877Z           "evidence": []
2026-06-21T05:16:14.2436979Z         },
2026-06-21T05:16:14.2437082Z         "impl": {
2026-06-21T05:16:14.2437301Z           "complete": true,
2026-06-21T05:16:14.2437409Z           "evidence": [
2026-06-21T05:16:14.2437513Z             {
2026-06-21T05:16:14.2437656Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.2437766Z               "line": 172
2026-06-21T05:16:14.2437870Z             },
2026-06-21T05:16:14.2437966Z             {
2026-06-21T05:16:14.2438109Z               "path": "crates/spt/src/api/worker.rs",
2026-06-21T05:16:14.2438213Z               "line": 18
2026-06-21T05:16:14.2438315Z             },
2026-06-21T05:16:14.2438419Z             {
2026-06-21T05:16:14.2438548Z               "path": "crates/spt/src/api/worker.rs",
2026-06-21T05:16:14.2438734Z               "line": 100
2026-06-21T05:16:14.2438834Z             }
2026-06-21T05:16:14.2438939Z           ]
2026-06-21T05:16:14.2439100Z         },
2026-06-21T05:16:14.2439212Z         "int": {
2026-06-21T05:16:14.2439325Z           "complete": false,
2026-06-21T05:16:14.2439429Z           "evidence": []
2026-06-21T05:16:14.2439545Z         },
2026-06-21T05:16:14.2439645Z         "unit": {
2026-06-21T05:16:14.2439759Z           "complete": true,
2026-06-21T05:16:14.2439865Z           "evidence": [
2026-06-21T05:16:14.2439969Z             {
2026-06-21T05:16:14.2440101Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.2440206Z               "line": 857
2026-06-21T05:16:14.2440305Z             },
2026-06-21T05:16:14.2440394Z             {
2026-06-21T05:16:14.2440533Z               "path": "crates/spt/src/api/worker.rs",
2026-06-21T05:16:14.2440666Z               "line": 161
2026-06-21T05:16:14.2440780Z             },
2026-06-21T05:16:14.2440905Z             {
2026-06-21T05:16:14.2441033Z               "path": "crates/spt/src/api/worker.rs",
2026-06-21T05:16:14.2441139Z               "line": 233
2026-06-21T05:16:14.2441238Z             }
2026-06-21T05:16:14.2441328Z           ]
2026-06-21T05:16:14.2441429Z         }
2026-06-21T05:16:14.2441521Z       }
2026-06-21T05:16:14.2441620Z     },
2026-06-21T05:16:14.2441715Z     {
2026-06-21T05:16:14.2441854Z       "id": "REQ-HAZARD-CHILD-CONSOLE-FLASH",
2026-06-21T05:16:14.2442316Z       "title": "Console-subsystem children of the console-less daemon spawn with CREATE_NO_WINDOW, or each spawn flashes a visible blank window on the user's desktop (5.8)",
2026-06-21T05:16:14.2442437Z       "requiredStages": [
2026-06-21T05:16:14.2442549Z         "impl",
2026-06-21T05:16:14.2442653Z         "unit"
2026-06-21T05:16:14.2442749Z       ],
2026-06-21T05:16:14.2442848Z       "stages": {
2026-06-21T05:16:14.2442951Z         "doc": {
2026-06-21T05:16:14.2443051Z           "complete": true,
2026-06-21T05:16:14.2443163Z           "evidence": [
2026-06-21T05:16:14.2443261Z             {
2026-06-21T05:16:14.2443401Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T05:16:14.2443510Z               "line": 220
2026-06-21T05:16:14.2443609Z             }
2026-06-21T05:16:14.2443711Z           ]
2026-06-21T05:16:14.2443810Z         },
2026-06-21T05:16:14.2443919Z         "impl": {
2026-06-21T05:16:14.2444035Z           "complete": true,
2026-06-21T05:16:14.2444148Z           "evidence": [
2026-06-21T05:16:14.2444249Z             {
2026-06-21T05:16:14.2444388Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T05:16:14.2444501Z               "line": 316
2026-06-21T05:16:14.2444601Z             },
2026-06-21T05:16:14.2444703Z             {
2026-06-21T05:16:14.2444854Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.2444965Z               "line": 356
2026-06-21T05:16:14.2445073Z             },
2026-06-21T05:16:14.2445169Z             {
2026-06-21T05:16:14.2445323Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.2445426Z               "line": 578
2026-06-21T05:16:14.2445529Z             },
2026-06-21T05:16:14.2445631Z             {
2026-06-21T05:16:14.2445778Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-21T05:16:14.2445878Z               "line": 77
2026-06-21T05:16:14.2446079Z             }
2026-06-21T05:16:14.2446192Z           ]
2026-06-21T05:16:14.2446289Z         },
2026-06-21T05:16:14.2446384Z         "int": {
2026-06-21T05:16:14.2446502Z           "complete": false,
2026-06-21T05:16:14.2446609Z           "evidence": []
2026-06-21T05:16:14.2446717Z         },
2026-06-21T05:16:14.2446808Z         "unit": {
2026-06-21T05:16:14.2446924Z           "complete": true,
2026-06-21T05:16:14.2447032Z           "evidence": [
2026-06-21T05:16:14.2447137Z             {
2026-06-21T05:16:14.2447285Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.2447394Z               "line": 747
2026-06-21T05:16:14.2447500Z             },
2026-06-21T05:16:14.2447690Z             {
2026-06-21T05:16:14.2447842Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.2447941Z               "line": 785
2026-06-21T05:16:14.2448044Z             },
2026-06-21T05:16:14.2448154Z             {
2026-06-21T05:16:14.2448284Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-21T05:16:14.2448401Z               "line": 166
2026-06-21T05:16:14.2448503Z             }
2026-06-21T05:16:14.2448607Z           ]
2026-06-21T05:16:14.2448702Z         }
2026-06-21T05:16:14.2448808Z       }
2026-06-21T05:16:14.2448903Z     },
2026-06-21T05:16:14.2449059Z     {
2026-06-21T05:16:14.2449208Z       "id": "REQ-HAZARD-CONFLICT-BOTH-PRESERVED",
2026-06-21T05:16:14.2449786Z       "title": "A surfaced concurrent context pair is durably preserved (both versions, tracked artifacts) until a strictly dominating write clears it; no reconcile failure path discards an unmerged version (6.6, ADR-0013)",
2026-06-21T05:16:14.2449909Z       "requiredStages": [
2026-06-21T05:16:14.2450018Z         "impl",
2026-06-21T05:16:14.2450125Z         "unit"
2026-06-21T05:16:14.2450219Z       ],
2026-06-21T05:16:14.2450319Z       "stages": {
2026-06-21T05:16:14.2450416Z         "doc": {
2026-06-21T05:16:14.2450529Z           "complete": false,
2026-06-21T05:16:14.2450637Z           "evidence": []
2026-06-21T05:16:14.2450747Z         },
2026-06-21T05:16:14.2450846Z         "impl": {
2026-06-21T05:16:14.2450964Z           "complete": true,
2026-06-21T05:16:14.2451069Z           "evidence": [
2026-06-21T05:16:14.2451170Z             {
2026-06-21T05:16:14.2451321Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-21T05:16:14.2451432Z               "line": 22
2026-06-21T05:16:14.2451527Z             },
2026-06-21T05:16:14.2451636Z             {
2026-06-21T05:16:14.2451775Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T05:16:14.2451870Z               "line": 487
2026-06-21T05:16:14.2451980Z             },
2026-06-21T05:16:14.2452081Z             {
2026-06-21T05:16:14.2452222Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-21T05:16:14.2452329Z               "line": 17
2026-06-21T05:16:14.2452428Z             },
2026-06-21T05:16:14.2452533Z             {
2026-06-21T05:16:14.2452667Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-21T05:16:14.2452780Z               "line": 147
2026-06-21T05:16:14.2452881Z             },
2026-06-21T05:16:14.2452982Z             {
2026-06-21T05:16:14.2453147Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T05:16:14.2453246Z               "line": 226
2026-06-21T05:16:14.2453347Z             },
2026-06-21T05:16:14.2453450Z             {
2026-06-21T05:16:14.2453588Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T05:16:14.2453693Z               "line": 251
2026-06-21T05:16:14.2453788Z             },
2026-06-21T05:16:14.2453893Z             {
2026-06-21T05:16:14.2454041Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T05:16:14.2454160Z               "line": 277
2026-06-21T05:16:14.2454256Z             },
2026-06-21T05:16:14.2454361Z             {
2026-06-21T05:16:14.2454494Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-21T05:16:14.2454609Z               "line": 124
2026-06-21T05:16:14.2454704Z             },
2026-06-21T05:16:14.2454915Z             {
2026-06-21T05:16:14.2455057Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-21T05:16:14.2455166Z               "line": 224
2026-06-21T05:16:14.2455272Z             }
2026-06-21T05:16:14.2455371Z           ]
2026-06-21T05:16:14.2455471Z         },
2026-06-21T05:16:14.2455578Z         "int": {
2026-06-21T05:16:14.2455685Z           "complete": false,
2026-06-21T05:16:14.2455801Z           "evidence": []
2026-06-21T05:16:14.2455902Z         },
2026-06-21T05:16:14.2456000Z         "unit": {
2026-06-21T05:16:14.2456104Z           "complete": true,
2026-06-21T05:16:14.2456219Z           "evidence": [
2026-06-21T05:16:14.2456433Z             {
2026-06-21T05:16:14.2456577Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-21T05:16:14.2456691Z               "line": 63
2026-06-21T05:16:14.2456782Z             },
2026-06-21T05:16:14.2456887Z             {
2026-06-21T05:16:14.2457034Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-21T05:16:14.2457160Z               "line": 73
2026-06-21T05:16:14.2457259Z             },
2026-06-21T05:16:14.2457358Z             {
2026-06-21T05:16:14.2457507Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-21T05:16:14.2457611Z               "line": 85
2026-06-21T05:16:14.2457711Z             },
2026-06-21T05:16:14.2457813Z             {
2026-06-21T05:16:14.2457959Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-21T05:16:14.2458060Z               "line": 346
2026-06-21T05:16:14.2458156Z             },
2026-06-21T05:16:14.2458250Z             {
2026-06-21T05:16:14.2458387Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-21T05:16:14.2458501Z               "line": 281
2026-06-21T05:16:14.2458605Z             },
2026-06-21T05:16:14.2458709Z             {
2026-06-21T05:16:14.2458854Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-21T05:16:14.2459033Z               "line": 322
2026-06-21T05:16:14.2459144Z             },
2026-06-21T05:16:14.2459248Z             {
2026-06-21T05:16:14.2459388Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-21T05:16:14.2459501Z               "line": 360
2026-06-21T05:16:14.2459591Z             },
2026-06-21T05:16:14.2459683Z             {
2026-06-21T05:16:14.2459825Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T05:16:14.2459930Z               "line": 688
2026-06-21T05:16:14.2460036Z             },
2026-06-21T05:16:14.2460135Z             {
2026-06-21T05:16:14.2460278Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-21T05:16:14.2460389Z               "line": 397
2026-06-21T05:16:14.2460492Z             },
2026-06-21T05:16:14.2460603Z             {
2026-06-21T05:16:14.2460755Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-21T05:16:14.2460860Z               "line": 440
2026-06-21T05:16:14.2460961Z             }
2026-06-21T05:16:14.2461066Z           ]
2026-06-21T05:16:14.2461164Z         }
2026-06-21T05:16:14.2461274Z       }
2026-06-21T05:16:14.2461378Z     },
2026-06-21T05:16:14.2461481Z     {
2026-06-21T05:16:14.2461605Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-21T05:16:14.2461843Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-21T05:16:14.2461954Z       "requiredStages": [
2026-06-21T05:16:14.2462054Z         "impl",
2026-06-21T05:16:14.2462162Z         "unit"
2026-06-21T05:16:14.2462264Z       ],
2026-06-21T05:16:14.2462378Z       "stages": {
2026-06-21T05:16:14.2462472Z         "doc": {
2026-06-21T05:16:14.2462588Z           "complete": false,
2026-06-21T05:16:14.2462688Z           "evidence": []
2026-06-21T05:16:14.2462787Z         },
2026-06-21T05:16:14.2462894Z         "impl": {
2026-06-21T05:16:14.2462998Z           "complete": true,
2026-06-21T05:16:14.2463112Z           "evidence": [
2026-06-21T05:16:14.2463213Z             {
2026-06-21T05:16:14.2463355Z               "path": "crates/spt-term/src/reader.rs",
2026-06-21T05:16:14.2463465Z               "line": 169
2026-06-21T05:16:14.2463670Z             }
2026-06-21T05:16:14.2463778Z           ]
2026-06-21T05:16:14.2463878Z         },
2026-06-21T05:16:14.2463982Z         "int": {
2026-06-21T05:16:14.2464091Z           "complete": true,
2026-06-21T05:16:14.2464196Z           "evidence": [
2026-06-21T05:16:14.2464297Z             {
2026-06-21T05:16:14.2464434Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-21T05:16:14.2464540Z               "line": 44
2026-06-21T05:16:14.2464640Z             },
2026-06-21T05:16:14.2464744Z             {
2026-06-21T05:16:14.2464874Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-21T05:16:14.2464978Z               "line": 66
2026-06-21T05:16:14.2465179Z             }
2026-06-21T05:16:14.2465273Z           ]
2026-06-21T05:16:14.2465378Z         },
2026-06-21T05:16:14.2465480Z         "unit": {
2026-06-21T05:16:14.2465593Z           "complete": true,
2026-06-21T05:16:14.2465703Z           "evidence": [
2026-06-21T05:16:14.2465804Z             {
2026-06-21T05:16:14.2465951Z               "path": "crates/spt-term/src/reader.rs",
2026-06-21T05:16:14.2466046Z               "line": 186
2026-06-21T05:16:14.2466152Z             },
2026-06-21T05:16:14.2466255Z             {
2026-06-21T05:16:14.2466395Z               "path": "crates/spt-term/src/reader.rs",
2026-06-21T05:16:14.2466500Z               "line": 238
2026-06-21T05:16:14.2466603Z             },
2026-06-21T05:16:14.2466708Z             {
2026-06-21T05:16:14.2466842Z               "path": "crates/spt-term/src/reader.rs",
2026-06-21T05:16:14.2466951Z               "line": 266
2026-06-21T05:16:14.2467051Z             }
2026-06-21T05:16:14.2467151Z           ]
2026-06-21T05:16:14.2467256Z         }
2026-06-21T05:16:14.2467361Z       }
2026-06-21T05:16:14.2467466Z     },
2026-06-21T05:16:14.2467556Z     {
2026-06-21T05:16:14.2467710Z       "id": "REQ-HAZARD-CONTROLLER-RETAKE-FLOOR",
2026-06-21T05:16:14.2472023Z       "title": "`become_controller` should STRUCTURALLY refuse a controller re-take whose `from_seq` falls below the connection's already-delivered contiguous floor — making the P1c reorder invariant un-reintroducible by a future caller, not just removed at the one caller. ROOT/SCOPE (doyle proposed, P1c gate dialogue): P1c fixes REQ-HAZARD-CONTROLLER-WRITER-REORDER three ways (handoff single-take + epoch-gate-under-lock + session_cursors seed), removing the one decreasing-floor double-take and bounding any other to already-committed-only. A self-enforcing broker guard would refuse the bad SHAPE outright. BLOCKER: the obvious predicate (`from_seq >= delivered_through`) is UNSAFE because `delivered_through` is SESSION-WIDE (the `Arc<AtomicU64>` on `OutputLog`, shared by all controllers/viewers, advanced monotonic-MAX; `resume_seq` reads it) — a normal fresh-operator `from_seq=0` attach to a producing session legitimately sits below it (full ring replay + consumer dedup-below/snap-above), and monotonic-MAX can't distinguish the hazard (a `seq1`-without-`seq0` write reads as `2`). The structurally-correct guard needs a NEW per-connection contiguous-sent cursor (the true highest-contiguous seq this socket has received) that does not exist today; the guard then refuses a re-take below THAT. Bigger than P1c; no live gap (P1c fully fixes the actual bug). Mint/refine stages when the per-connection cursor is built. (v0.13.0 follow-up, post-ship)",
2026-06-21T05:16:14.2472213Z       "requiredStages": [],
2026-06-21T05:16:14.2472323Z       "stages": {
2026-06-21T05:16:14.2472427Z         "doc": {
2026-06-21T05:16:14.2472533Z           "complete": false,
2026-06-21T05:16:14.2472647Z           "evidence": []
2026-06-21T05:16:14.2472746Z         },
2026-06-21T05:16:14.2472848Z         "impl": {
2026-06-21T05:16:14.2472990Z           "complete": false,
2026-06-21T05:16:14.2473091Z           "evidence": []
2026-06-21T05:16:14.2473196Z         },
2026-06-21T05:16:14.2473296Z         "int": {
2026-06-21T05:16:14.2473405Z           "complete": false,
2026-06-21T05:16:14.2473506Z           "evidence": []
2026-06-21T05:16:14.2473614Z         },
2026-06-21T05:16:14.2473830Z         "unit": {
2026-06-21T05:16:14.2473934Z           "complete": false,
2026-06-21T05:16:14.2474054Z           "evidence": []
2026-06-21T05:16:14.2474155Z         }
2026-06-21T05:16:14.2474258Z       }
2026-06-21T05:16:14.2474362Z     },
2026-06-21T05:16:14.2474462Z     {
2026-06-21T05:16:14.2474613Z       "id": "REQ-HAZARD-CONTROLLER-WRITER-REORDER",
2026-06-21T05:16:14.2488462Z       "title": "Two `controller_writer` threads must never race ONE brain↔broker connection's socket. ROOT (doyle, instrumented RACEDIAG repro on kitsubito): on a brain-restart re-serve the handoff brain registers as controller on the SAME session TWICE over the SAME `Brain::conn` socket — (1) `Brain::handoff` eagerly `subscribe(prior.session_id, prior.next_seq=1)` → `become_controller(from_seq=1)`, initial=[1], spawns writer-A (writes seq 1); (2) `serve_attach` re-handles the replayed `Request{from_seq:0}` → `attach_as(sid,0)` → `become_controller(from_seq=0)`, initial=[0,1], spawns writer-B (writes 0 then 1). `become_controller` (broker.rs) drops the prior `ControllerSink` (its `tx`) but does NOT stop the prior writer thread — writer-A keeps flushing its owned `initial` batch, and both writers hold clones of the same `SharedSend` (`Arc<Mutex<socket>>`) with NO inter-thread ordering. When writer-A's seq 1 wins the socket before writer-B's seq 0, the strict legacy consumer (brain.rs read_event reject-gap path) sees `output gap: got seq 1 want 0` → the test `attach_survives_target_brain_restart_exactly_once` panics at `.expect(\"re-serve\")` OR HANGS in `render_until` (serve thread died on the gap → MARKER_TWO never reaches the wire). `prior.next_seq` is life1's CONSUMPTION cursor, NOT life2's connection state — life2's socket has been sent NOTHING, so a `from_seq=0` full replay on a connection that already streamed seq 1 is contradictory. Snap-above tolerance ALONE can't fix it (it would dedup-drop the late seq 0 → byte loss → the exactly-once byte-identity assert fails). PRE-EXISTING, surfaced by the v0.13.0 green-both-runners release gate; P1b is INNOCENT (its diff touches only input-ack machinery, proven mechanically + the test passes post-P1b in isolation). Sibling flaky cluster: `inject_control_wedge::g2`, `broker::spawn_env_reaches_child`. INVARIANT: on a single brain↔broker connection the controller output-frame stream is monotonic non-decreasing in seq (modulo dedup re-sends); exactly ONE `controller_writer` is ever live per connection; a SUPERSEDED writer writes NO further frames; a re-serve never replays a seq below what the connection already received. FIX (doyle design, corrected at the gate 2026-06-20): fix #1 as designed ('drop handoff's eager subscribe so serve_attach's attach_as is the sole registration') was REVERTED — handoff's `subscribe(prior.next_seq)` IS the standalone-resume mechanism (the brain-only update engine `apply_brain_only` + the `handoff`/`idempotent`/`daemon_e2e` int tests replay output through it with NO `serve_attach`; dropping it hung every resume-via-handoff test). The shipped fix is three parts: (1) CORRECTNESS — `Brain::handoff` seeds `session_cursors` at `prior.next_seq` so the consumer runs the production dedup-below+snap-above path, never the strict reject-gap legacy trap; this is COMPLETE (not merely tolerant) because every `controller_writer` emits an ASCENDING seq stream and the surviving writer (serve_attach's attach_as(sid,0)) offers the complete `[0,end]` range, so a snap-above merge of ascending writers delivers `[K,end]` with no skip/dup (first sighting of any seq>M is preceded by M on that writer). (2) INVARIANT — `controller_writer`'s INITIAL-BATCH replay is epoch-gated: `controller_epoch` is a shared `Arc<AtomicU64>`, the writer re-reads it UNDER `send.lock()` (atomically with `write_frame`) and returns the instant it is superseded — no check-then-block-then-write window, no superseded replay (W1-safe: never blocks the drain under `Mutex<OutputLog>`). The LIVE loop is NOT gated (new output only flows to the current controller; a superseded writer must still deliver its terminal `Displaced` kick — gating it suppressed the loud-take notice; it ends on `tx`-drop). (3) EXPLICIT-RESUME / OPERATOR-STREAM BOUNDARY (the LOAD-BEARING fix — kitsubito RACEDIAG ~33% repro the keystones missed) — `Brain::subscribe_with` (shared by attach/attach_as) resets the resume-mode dedup cursor to `from_seq`. The handoff eager subscribe makes serve_attach's brain receive the replay's seq K BEFORE the operator Request is processed (`attached`=false); that frame is dropped by the if-attached forward gate but the snap-above cursor already advanced past K, and `attach_as(sid,0)`'s re-subscribe used to leave the cursor advanced → the broker's re-send of seq K arrives below it, deduped, never forwarded → operator viewport forward-gap (silent content loss in the real rc consumer). Resetting to from_seq on the attach_as re-subscribe re-delivers from 0 (operator dedups the overlap) so seq K reaches the viewport. The epoch gate (2) is sound (RACEDIAG: zero socket interleaving above K); cold-start brains (empty map — production dispatch serve) keep the legacy next_seq path, so production is unaffected. (v0.13.0)",
2026-06-21T05:16:14.2489197Z       "requiredStages": [
2026-06-21T05:16:14.2489297Z         "doc",
2026-06-21T05:16:14.2489431Z         "impl",
2026-06-21T05:16:14.2489536Z         "unit",
2026-06-21T05:16:14.2489640Z         "int"
2026-06-21T05:16:14.2489740Z       ],
2026-06-21T05:16:14.2489846Z       "stages": {
2026-06-21T05:16:14.2489954Z         "doc": {
2026-06-21T05:16:14.2490053Z           "complete": true,
2026-06-21T05:16:14.2490163Z           "evidence": [
2026-06-21T05:16:14.2490266Z             {
2026-06-21T05:16:14.2490395Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T05:16:14.2490534Z               "line": 468
2026-06-21T05:16:14.2490642Z             }
2026-06-21T05:16:14.2490743Z           ]
2026-06-21T05:16:14.2490843Z         },
2026-06-21T05:16:14.2490952Z         "impl": {
2026-06-21T05:16:14.2491063Z           "complete": true,
2026-06-21T05:16:14.2491196Z           "evidence": [
2026-06-21T05:16:14.2491300Z             {
2026-06-21T05:16:14.2491444Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T05:16:14.2491558Z               "line": 342
2026-06-21T05:16:14.2491663Z             },
2026-06-21T05:16:14.2491764Z             {
2026-06-21T05:16:14.2491901Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T05:16:14.2492002Z               "line": 1188
2026-06-21T05:16:14.2492106Z             },
2026-06-21T05:16:14.2492211Z             {
2026-06-21T05:16:14.2492356Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2492463Z               "line": 715
2026-06-21T05:16:14.2492579Z             }
2026-06-21T05:16:14.2492680Z           ]
2026-06-21T05:16:14.2492783Z         },
2026-06-21T05:16:14.2492882Z         "int": {
2026-06-21T05:16:14.2492997Z           "complete": true,
2026-06-21T05:16:14.2493100Z           "evidence": [
2026-06-21T05:16:14.2493190Z             {
2026-06-21T05:16:14.2493334Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T05:16:14.2493443Z               "line": 1163
2026-06-21T05:16:14.2493538Z             },
2026-06-21T05:16:14.2493640Z             {
2026-06-21T05:16:14.2493786Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T05:16:14.2493906Z               "line": 1264
2026-06-21T05:16:14.2494006Z             },
2026-06-21T05:16:14.2494115Z             {
2026-06-21T05:16:14.2494254Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-21T05:16:14.2494368Z               "line": 1169
2026-06-21T05:16:14.2494468Z             }
2026-06-21T05:16:14.2494554Z           ]
2026-06-21T05:16:14.2494659Z         },
2026-06-21T05:16:14.2494768Z         "unit": {
2026-06-21T05:16:14.2494879Z           "complete": true,
2026-06-21T05:16:14.2494988Z           "evidence": [
2026-06-21T05:16:14.2495098Z             {
2026-06-21T05:16:14.2495251Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2495350Z               "line": 2624
2026-06-21T05:16:14.2495583Z             }
2026-06-21T05:16:14.2495681Z           ]
2026-06-21T05:16:14.2495790Z         }
2026-06-21T05:16:14.2498746Z       }
2026-06-21T05:16:14.2498931Z     },
2026-06-21T05:16:14.2499137Z     {
2026-06-21T05:16:14.2499289Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-21T05:16:14.2499757Z       "title": "Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)",
2026-06-21T05:16:14.2499881Z       "requiredStages": [
2026-06-21T05:16:14.2499986Z         "impl",
2026-06-21T05:16:14.2500096Z         "unit",
2026-06-21T05:16:14.2500354Z         "int"
2026-06-21T05:16:14.2500448Z       ],
2026-06-21T05:16:14.2500552Z       "stages": {
2026-06-21T05:16:14.2500657Z         "doc": {
2026-06-21T05:16:14.2500775Z           "complete": false,
2026-06-21T05:16:14.2500883Z           "evidence": []
2026-06-21T05:16:14.2500993Z         },
2026-06-21T05:16:14.2501094Z         "impl": {
2026-06-21T05:16:14.2501212Z           "complete": true,
2026-06-21T05:16:14.2501317Z           "evidence": [
2026-06-21T05:16:14.2501423Z             {
2026-06-21T05:16:14.2501579Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.2501680Z               "line": 178
2026-06-21T05:16:14.2501785Z             },
2026-06-21T05:16:14.2501889Z             {
2026-06-21T05:16:14.2502037Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.2502146Z               "line": 226
2026-06-21T05:16:14.2502233Z             },
2026-06-21T05:16:14.2502338Z             {
2026-06-21T05:16:14.2502480Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T05:16:14.2502596Z               "line": 79
2026-06-21T05:16:14.2502704Z             },
2026-06-21T05:16:14.2502795Z             {
2026-06-21T05:16:14.2502926Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-21T05:16:14.2503033Z               "line": 52
2026-06-21T05:16:14.2503139Z             },
2026-06-21T05:16:14.2503245Z             {
2026-06-21T05:16:14.2503390Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T05:16:14.2503495Z               "line": 263
2026-06-21T05:16:14.2503596Z             },
2026-06-21T05:16:14.2503698Z             {
2026-06-21T05:16:14.2503841Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-21T05:16:14.2503956Z               "line": 27
2026-06-21T05:16:14.2504055Z             },
2026-06-21T05:16:14.2504161Z             {
2026-06-21T05:16:14.2504309Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-21T05:16:14.2504413Z               "line": 79
2026-06-21T05:16:14.2504519Z             },
2026-06-21T05:16:14.2504624Z             {
2026-06-21T05:16:14.2504761Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-21T05:16:14.2504862Z               "line": 102
2026-06-21T05:16:14.2504957Z             },
2026-06-21T05:16:14.2505062Z             {
2026-06-21T05:16:14.2505205Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T05:16:14.2505324Z               "line": 116
2026-06-21T05:16:14.2505425Z             }
2026-06-21T05:16:14.2505530Z           ]
2026-06-21T05:16:14.2505629Z         },
2026-06-21T05:16:14.2505740Z         "int": {
2026-06-21T05:16:14.2505859Z           "complete": true,
2026-06-21T05:16:14.2505962Z           "evidence": [
2026-06-21T05:16:14.2506067Z             {
2026-06-21T05:16:14.2506222Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-21T05:16:14.2506326Z               "line": 43
2026-06-21T05:16:14.2506432Z             }
2026-06-21T05:16:14.2506542Z           ]
2026-06-21T05:16:14.2506650Z         },
2026-06-21T05:16:14.2506757Z         "unit": {
2026-06-21T05:16:14.2506871Z           "complete": true,
2026-06-21T05:16:14.2506974Z           "evidence": [
2026-06-21T05:16:14.2507086Z             {
2026-06-21T05:16:14.2507233Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.2507347Z               "line": 678
2026-06-21T05:16:14.2507543Z             },
2026-06-21T05:16:14.2507647Z             {
2026-06-21T05:16:14.2507791Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T05:16:14.2507891Z               "line": 495
2026-06-21T05:16:14.2507996Z             },
2026-06-21T05:16:14.2508101Z             {
2026-06-21T05:16:14.2508244Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-21T05:16:14.2508359Z               "line": 124
2026-06-21T05:16:14.2508462Z             },
2026-06-21T05:16:14.2508568Z             {
2026-06-21T05:16:14.2508707Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-21T05:16:14.2508815Z               "line": 143
2026-06-21T05:16:14.2509111Z             },
2026-06-21T05:16:14.2509210Z             {
2026-06-21T05:16:14.2509359Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-21T05:16:14.2509463Z               "line": 160
2026-06-21T05:16:14.2509558Z             },
2026-06-21T05:16:14.2509664Z             {
2026-06-21T05:16:14.2509806Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-21T05:16:14.2509916Z               "line": 187
2026-06-21T05:16:14.2510026Z             },
2026-06-21T05:16:14.2510131Z             {
2026-06-21T05:16:14.2510275Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-21T05:16:14.2510383Z               "line": 206
2026-06-21T05:16:14.2510483Z             },
2026-06-21T05:16:14.2510590Z             {
2026-06-21T05:16:14.2510740Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T05:16:14.2510846Z               "line": 229
2026-06-21T05:16:14.2510943Z             }
2026-06-21T05:16:14.2511032Z           ]
2026-06-21T05:16:14.2511131Z         }
2026-06-21T05:16:14.2511231Z       }
2026-06-21T05:16:14.2511335Z     },
2026-06-21T05:16:14.2511439Z     {
2026-06-21T05:16:14.2511587Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-21T05:16:14.2512264Z       "title": "Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)",
2026-06-21T05:16:14.2512382Z       "requiredStages": [
2026-06-21T05:16:14.2512493Z         "impl",
2026-06-21T05:16:14.2512597Z         "unit"
2026-06-21T05:16:14.2512697Z       ],
2026-06-21T05:16:14.2512803Z       "stages": {
2026-06-21T05:16:14.2512912Z         "doc": {
2026-06-21T05:16:14.2513036Z           "complete": false,
2026-06-21T05:16:14.2513137Z           "evidence": []
2026-06-21T05:16:14.2513246Z         },
2026-06-21T05:16:14.2513350Z         "impl": {
2026-06-21T05:16:14.2513461Z           "complete": true,
2026-06-21T05:16:14.2513575Z           "evidence": [
2026-06-21T05:16:14.2513670Z             {
2026-06-21T05:16:14.2513824Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2513932Z               "line": 1174
2026-06-21T05:16:14.2514036Z             },
2026-06-21T05:16:14.2514122Z             {
2026-06-21T05:16:14.2514277Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2514382Z               "line": 1400
2026-06-21T05:16:14.2514483Z             }
2026-06-21T05:16:14.2514592Z           ]
2026-06-21T05:16:14.2514691Z         },
2026-06-21T05:16:14.2514793Z         "int": {
2026-06-21T05:16:14.2514902Z           "complete": false,
2026-06-21T05:16:14.2515016Z           "evidence": []
2026-06-21T05:16:14.2515122Z         },
2026-06-21T05:16:14.2515221Z         "unit": {
2026-06-21T05:16:14.2515331Z           "complete": true,
2026-06-21T05:16:14.2515441Z           "evidence": [
2026-06-21T05:16:14.2515536Z             {
2026-06-21T05:16:14.2515684Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-21T05:16:14.2515803Z               "line": 161
2026-06-21T05:16:14.2515912Z             }
2026-06-21T05:16:14.2516014Z           ]
2026-06-21T05:16:14.2516118Z         }
2026-06-21T05:16:14.2516218Z       }
2026-06-21T05:16:14.2516324Z     },
2026-06-21T05:16:14.2516419Z     {
2026-06-21T05:16:14.2516670Z       "id": "REQ-HAZARD-DAEMON-STOP-BARRIER",
2026-06-21T05:16:14.2518460Z       "title": "B3: `spt daemon stop` then an immediate `spt daemon start` does NOT race — stop fully completes before it returns. Today request_stop (seedmap.rs:240-255) returns on the KIND_STOPPING ack (sent seedmap.rs:174-176) BEFORE the seed socket unbinds, so a following is_running ping (daemon.rs:375) wins the exit window and start reports ALREADY_RUNNING (operator: daemon stop → STOPPED then start → ALREADY_RUNNING). FIX: unbind/stop-gate the seed socket BEFORE acking KIND_STOPPING, OR request_stop waits for a ping-to-fail before returning. Unit: stop then immediate is_running()==false. (v0.12.0)",
2026-06-21T05:16:14.2518689Z       "requiredStages": [
2026-06-21T05:16:14.2518799Z         "impl",
2026-06-21T05:16:14.2518905Z         "unit"
2026-06-21T05:16:14.2519085Z       ],
2026-06-21T05:16:14.2519196Z       "stages": {
2026-06-21T05:16:14.2519295Z         "doc": {
2026-06-21T05:16:14.2519422Z           "complete": false,
2026-06-21T05:16:14.2519552Z           "evidence": []
2026-06-21T05:16:14.2519652Z         },
2026-06-21T05:16:14.2519751Z         "impl": {
2026-06-21T05:16:14.2519857Z           "complete": true,
2026-06-21T05:16:14.2519967Z           "evidence": [
2026-06-21T05:16:14.2520066Z             {
2026-06-21T05:16:14.2520219Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-21T05:16:14.2520324Z               "line": 257
2026-06-21T05:16:14.2520433Z             }
2026-06-21T05:16:14.2520539Z           ]
2026-06-21T05:16:14.2520638Z         },
2026-06-21T05:16:14.2520748Z         "int": {
2026-06-21T05:16:14.2520849Z           "complete": false,
2026-06-21T05:16:14.2520972Z           "evidence": []
2026-06-21T05:16:14.2521072Z         },
2026-06-21T05:16:14.2521173Z         "unit": {
2026-06-21T05:16:14.2521296Z           "complete": true,
2026-06-21T05:16:14.2521406Z           "evidence": [
2026-06-21T05:16:14.2521507Z             {
2026-06-21T05:16:14.2521653Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-21T05:16:14.2521777Z               "line": 360
2026-06-21T05:16:14.2521881Z             }
2026-06-21T05:16:14.2521989Z           ]
2026-06-21T05:16:14.2522094Z         }
2026-06-21T05:16:14.2522195Z       }
2026-06-21T05:16:14.2522294Z     },
2026-06-21T05:16:14.2522399Z     {
2026-06-21T05:16:14.2522538Z       "id": "REQ-HAZARD-DAEMON-STOP-REAP",
2026-06-21T05:16:14.2524332Z       "title": "Breap: `spt daemon stop` REAPS the spt-hosted children it spawned — no orphaned psyche/harness processes. Today a stop leaves ~8 orphaned claude-spt-psyche.exe + spt.exe: Psyches are spawned DETACHED (runtime.rs:342-356, the Child is dropped — 'Detached' ~349) and the livehost stop flag Arc<AtomicBool> is NEVER raised (brainproc.rs:227-230 holds it 'for symmetry'). FIX: on stop, raise the livehost stop flag AND kill the spawned psyche/spt-hosted children — via a Windows job object / Unix process-group so the children die with the daemon (not detached-immortal). Folds with B3 (both the stop path). (v0.12.0)",
2026-06-21T05:16:14.2524483Z       "requiredStages": [
2026-06-21T05:16:14.2524587Z         "impl",
2026-06-21T05:16:14.2524687Z         "unit"
2026-06-21T05:16:14.2524790Z       ],
2026-06-21T05:16:14.2524899Z       "stages": {
2026-06-21T05:16:14.2525004Z         "doc": {
2026-06-21T05:16:14.2525129Z           "complete": false,
2026-06-21T05:16:14.2525238Z           "evidence": []
2026-06-21T05:16:14.2525339Z         },
2026-06-21T05:16:14.2525448Z         "impl": {
2026-06-21T05:16:14.2525552Z           "complete": true,
2026-06-21T05:16:14.2525668Z           "evidence": [
2026-06-21T05:16:14.2525772Z             {
2026-06-21T05:16:14.2525944Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2526053Z               "line": 1018
2026-06-21T05:16:14.2526167Z             },
2026-06-21T05:16:14.2526264Z             {
2026-06-21T05:16:14.2526405Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.2526511Z               "line": 283
2026-06-21T05:16:14.2526720Z             },
2026-06-21T05:16:14.2526831Z             {
2026-06-21T05:16:14.2526960Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.2527073Z               "line": 316
2026-06-21T05:16:14.2527172Z             },
2026-06-21T05:16:14.2527287Z             {
2026-06-21T05:16:14.2527428Z               "path": "crates/spt-daemon/src/reap.rs",
2026-06-21T05:16:14.2527533Z               "line": 26
2026-06-21T05:16:14.2527639Z             }
2026-06-21T05:16:14.2527737Z           ]
2026-06-21T05:16:14.2527838Z         },
2026-06-21T05:16:14.2527939Z         "int": {
2026-06-21T05:16:14.2528052Z           "complete": false,
2026-06-21T05:16:14.2528272Z           "evidence": []
2026-06-21T05:16:14.2528376Z         },
2026-06-21T05:16:14.2528482Z         "unit": {
2026-06-21T05:16:14.2528587Z           "complete": true,
2026-06-21T05:16:14.2528696Z           "evidence": [
2026-06-21T05:16:14.2528797Z             {
2026-06-21T05:16:14.2529020Z               "path": "crates/spt-daemon/src/reap.rs",
2026-06-21T05:16:14.2529146Z               "line": 271
2026-06-21T05:16:14.2529249Z             },
2026-06-21T05:16:14.2529359Z             {
2026-06-21T05:16:14.2529494Z               "path": "crates/spt-daemon/src/reap.rs",
2026-06-21T05:16:14.2529597Z               "line": 348
2026-06-21T05:16:14.2529698Z             }
2026-06-21T05:16:14.2529804Z           ]
2026-06-21T05:16:14.2529907Z         }
2026-06-21T05:16:14.2530011Z       }
2026-06-21T05:16:14.2530112Z     },
2026-06-21T05:16:14.2530212Z     {
2026-06-21T05:16:14.2530344Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-21T05:16:14.2530551Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-21T05:16:14.2530664Z       "requiredStages": [
2026-06-21T05:16:14.2530756Z         "impl",
2026-06-21T05:16:14.2530860Z         "unit"
2026-06-21T05:16:14.2530960Z       ],
2026-06-21T05:16:14.2531061Z       "stages": {
2026-06-21T05:16:14.2531166Z         "doc": {
2026-06-21T05:16:14.2531289Z           "complete": false,
2026-06-21T05:16:14.2531395Z           "evidence": []
2026-06-21T05:16:14.2531499Z         },
2026-06-21T05:16:14.2531599Z         "impl": {
2026-06-21T05:16:14.2531710Z           "complete": true,
2026-06-21T05:16:14.2531818Z           "evidence": [
2026-06-21T05:16:14.2531923Z             {
2026-06-21T05:16:14.2532063Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T05:16:14.2532176Z               "line": 40
2026-06-21T05:16:14.2532275Z             },
2026-06-21T05:16:14.2532375Z             {
2026-06-21T05:16:14.2532521Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T05:16:14.2532630Z               "line": 103
2026-06-21T05:16:14.2532736Z             },
2026-06-21T05:16:14.2532841Z             {
2026-06-21T05:16:14.2532974Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T05:16:14.2533079Z               "line": 218
2026-06-21T05:16:14.2533179Z             },
2026-06-21T05:16:14.2533289Z             {
2026-06-21T05:16:14.2533422Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T05:16:14.2533545Z               "line": 323
2026-06-21T05:16:14.2533647Z             }
2026-06-21T05:16:14.2533741Z           ]
2026-06-21T05:16:14.2533846Z         },
2026-06-21T05:16:14.2533952Z         "int": {
2026-06-21T05:16:14.2534070Z           "complete": false,
2026-06-21T05:16:14.2534180Z           "evidence": []
2026-06-21T05:16:14.2534276Z         },
2026-06-21T05:16:14.2534381Z         "unit": {
2026-06-21T05:16:14.2534489Z           "complete": true,
2026-06-21T05:16:14.2534596Z           "evidence": [
2026-06-21T05:16:14.2534700Z             {
2026-06-21T05:16:14.2534848Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T05:16:14.2534959Z               "line": 361
2026-06-21T05:16:14.2535071Z             },
2026-06-21T05:16:14.2535175Z             {
2026-06-21T05:16:14.2535304Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T05:16:14.2535421Z               "line": 433
2026-06-21T05:16:14.2535627Z             },
2026-06-21T05:16:14.2535731Z             {
2026-06-21T05:16:14.2535865Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T05:16:14.2535970Z               "line": 496
2026-06-21T05:16:14.2536079Z             },
2026-06-21T05:16:14.2536175Z             {
2026-06-21T05:16:14.2536314Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T05:16:14.2536417Z               "line": 517
2026-06-21T05:16:14.2536528Z             }
2026-06-21T05:16:14.2536632Z           ]
2026-06-21T05:16:14.2536737Z         }
2026-06-21T05:16:14.2536843Z       }
2026-06-21T05:16:14.2536942Z     },
2026-06-21T05:16:14.2537042Z     {
2026-06-21T05:16:14.2537304Z       "id": "REQ-HAZARD-DEFERRED-MANIFEST",
2026-06-21T05:16:14.2539725Z       "title": "A pointer-mode (delegated / GhReleaseManaged) adapter whose binary/manifest is not yet extracted is reported with a CLEAR diagnostic, never silently dropped. Today such an adapter reads its manifest LIVE from source_dir (registry.rs manifest_dir ~146/149); a deferred / un-extracted install makes load_manifest fail → registered() (~410, filter_map(.ok())) SILENTLY DROPS the row → downstream ADAPTER_UNRESOLVED + a cryptic os-error-2 on `spt adapter use`. FIX: surface a clear diagnostic at the resolver + at `adapter use` (name the adapter + the deferred/missing-manifest cause + the fix), not a silent filter-drop and not a bare os-error-2; consider an eager manifest copy at register time so host_binaries survive before the binary download completes. doyle Finding A. (post-v0.10.0)",
2026-06-21T05:16:14.2539857Z       "requiredStages": [
2026-06-21T05:16:14.2539957Z         "impl",
2026-06-21T05:16:14.2540087Z         "unit"
2026-06-21T05:16:14.2540186Z       ],
2026-06-21T05:16:14.2540292Z       "stages": {
2026-06-21T05:16:14.2540397Z         "doc": {
2026-06-21T05:16:14.2540505Z           "complete": false,
2026-06-21T05:16:14.2540619Z           "evidence": []
2026-06-21T05:16:14.2540710Z         },
2026-06-21T05:16:14.2540819Z         "impl": {
2026-06-21T05:16:14.2540948Z           "complete": true,
2026-06-21T05:16:14.2541063Z           "evidence": [
2026-06-21T05:16:14.2541172Z             {
2026-06-21T05:16:14.2541321Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.2541430Z               "line": 402
2026-06-21T05:16:14.2541534Z             },
2026-06-21T05:16:14.2541641Z             {
2026-06-21T05:16:14.2541787Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.2541897Z               "line": 446
2026-06-21T05:16:14.2542002Z             }
2026-06-21T05:16:14.2542102Z           ]
2026-06-21T05:16:14.2542202Z         },
2026-06-21T05:16:14.2542308Z         "int": {
2026-06-21T05:16:14.2542431Z           "complete": false,
2026-06-21T05:16:14.2542531Z           "evidence": []
2026-06-21T05:16:14.2542641Z         },
2026-06-21T05:16:14.2542745Z         "unit": {
2026-06-21T05:16:14.2542849Z           "complete": true,
2026-06-21T05:16:14.2542949Z           "evidence": [
2026-06-21T05:16:14.2543062Z             {
2026-06-21T05:16:14.2543214Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.2543325Z               "line": 910
2026-06-21T05:16:14.2543424Z             }
2026-06-21T05:16:14.2543529Z           ]
2026-06-21T05:16:14.2543639Z         }
2026-06-21T05:16:14.2543744Z       }
2026-06-21T05:16:14.2543844Z     },
2026-06-21T05:16:14.2543944Z     {
2026-06-21T05:16:14.2544091Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-21T05:16:14.2544245Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-21T05:16:14.2544364Z       "requiredStages": [
2026-06-21T05:16:14.2544464Z         "impl",
2026-06-21T05:16:14.2544569Z         "unit"
2026-06-21T05:16:14.2544669Z       ],
2026-06-21T05:16:14.2544774Z       "stages": {
2026-06-21T05:16:14.2544879Z         "doc": {
2026-06-21T05:16:14.2545003Z           "complete": false,
2026-06-21T05:16:14.2545108Z           "evidence": []
2026-06-21T05:16:14.2545208Z         },
2026-06-21T05:16:14.2545418Z         "impl": {
2026-06-21T05:16:14.2545533Z           "complete": true,
2026-06-21T05:16:14.2545640Z           "evidence": [
2026-06-21T05:16:14.2545735Z             {
2026-06-21T05:16:14.2545887Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T05:16:14.2545990Z               "line": 116
2026-06-21T05:16:14.2546096Z             },
2026-06-21T05:16:14.2546201Z             {
2026-06-21T05:16:14.2546334Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T05:16:14.2546440Z               "line": 211
2026-06-21T05:16:14.2546545Z             }
2026-06-21T05:16:14.2546639Z           ]
2026-06-21T05:16:14.2546745Z         },
2026-06-21T05:16:14.2546958Z         "int": {
2026-06-21T05:16:14.2547074Z           "complete": false,
2026-06-21T05:16:14.2547187Z           "evidence": []
2026-06-21T05:16:14.2547292Z         },
2026-06-21T05:16:14.2547384Z         "unit": {
2026-06-21T05:16:14.2547502Z           "complete": true,
2026-06-21T05:16:14.2547617Z           "evidence": [
2026-06-21T05:16:14.2547727Z             {
2026-06-21T05:16:14.2547874Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T05:16:14.2547985Z               "line": 388
2026-06-21T05:16:14.2548090Z             },
2026-06-21T05:16:14.2548193Z             {
2026-06-21T05:16:14.2548331Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T05:16:14.2548454Z               "line": 469
2026-06-21T05:16:14.2548557Z             }
2026-06-21T05:16:14.2548658Z           ]
2026-06-21T05:16:14.2548744Z         }
2026-06-21T05:16:14.2548853Z       }
2026-06-21T05:16:14.2549026Z     },
2026-06-21T05:16:14.2549130Z     {
2026-06-21T05:16:14.2549278Z       "id": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
2026-06-21T05:16:14.2550402Z       "title": "Windows detached long-lived children must not inherit a captured caller's pipe: every detach-spawn of an immortal child (daemon, shell binary) runs bInheritHandles=FALSE, or a caller capturing output anywhere up the process chain hangs forever on a pipe that never EOFs — std-handle flag stripping is NOT sufficient (grandparent strays still flow) (5.6)",
2026-06-21T05:16:14.2550522Z       "requiredStages": [
2026-06-21T05:16:14.2550624Z         "impl",
2026-06-21T05:16:14.2550731Z         "unit"
2026-06-21T05:16:14.2550837Z       ],
2026-06-21T05:16:14.2550938Z       "stages": {
2026-06-21T05:16:14.2551046Z         "doc": {
2026-06-21T05:16:14.2551150Z           "complete": true,
2026-06-21T05:16:14.2551270Z           "evidence": [
2026-06-21T05:16:14.2551375Z             {
2026-06-21T05:16:14.2551513Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T05:16:14.2551632Z               "line": 206
2026-06-21T05:16:14.2551751Z             }
2026-06-21T05:16:14.2551857Z           ]
2026-06-21T05:16:14.2551952Z         },
2026-06-21T05:16:14.2552056Z         "impl": {
2026-06-21T05:16:14.2552171Z           "complete": true,
2026-06-21T05:16:14.2552281Z           "evidence": [
2026-06-21T05:16:14.2552390Z             {
2026-06-21T05:16:14.2552539Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.2552672Z               "line": 691
2026-06-21T05:16:14.2552777Z             },
2026-06-21T05:16:14.2552887Z             {
2026-06-21T05:16:14.2553024Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.2553135Z               "line": 791
2026-06-21T05:16:14.2553239Z             },
2026-06-21T05:16:14.2553343Z             {
2026-06-21T05:16:14.2553481Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.2553594Z               "line": 1120
2026-06-21T05:16:14.2553702Z             },
2026-06-21T05:16:14.2553808Z             {
2026-06-21T05:16:14.2553956Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T05:16:14.2554080Z               "line": 184
2026-06-21T05:16:14.2554181Z             }
2026-06-21T05:16:14.2554284Z           ]
2026-06-21T05:16:14.2554390Z         },
2026-06-21T05:16:14.2554490Z         "int": {
2026-06-21T05:16:14.2554604Z           "complete": false,
2026-06-21T05:16:14.2554838Z           "evidence": []
2026-06-21T05:16:14.2554942Z         },
2026-06-21T05:16:14.2555053Z         "unit": {
2026-06-21T05:16:14.2555167Z           "complete": true,
2026-06-21T05:16:14.2555277Z           "evidence": [
2026-06-21T05:16:14.2555383Z             {
2026-06-21T05:16:14.2555524Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.2555634Z               "line": 1169
2026-06-21T05:16:14.2555745Z             },
2026-06-21T05:16:14.2555844Z             {
2026-06-21T05:16:14.2555997Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-21T05:16:14.2556111Z               "line": 44
2026-06-21T05:16:14.2556315Z             },
2026-06-21T05:16:14.2556424Z             {
2026-06-21T05:16:14.2556574Z               "path": "crates/spt/tests/shell_actgate_e2e.rs",
2026-06-21T05:16:14.2556685Z               "line": 52
2026-06-21T05:16:14.2556781Z             },
2026-06-21T05:16:14.2556889Z             {
2026-06-21T05:16:14.2557024Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-21T05:16:14.2557138Z               "line": 57
2026-06-21T05:16:14.2557237Z             },
2026-06-21T05:16:14.2557343Z             {
2026-06-21T05:16:14.2557505Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-21T05:16:14.2557600Z               "line": 54
2026-06-21T05:16:14.2557710Z             }
2026-06-21T05:16:14.2557810Z           ]
2026-06-21T05:16:14.2557910Z         }
2026-06-21T05:16:14.2558006Z       }
2026-06-21T05:16:14.2558100Z     },
2026-06-21T05:16:14.2558206Z     {
2026-06-21T05:16:14.2558349Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-21T05:16:14.2558593Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-21T05:16:14.2558706Z       "requiredStages": [
2026-06-21T05:16:14.2558815Z         "impl",
2026-06-21T05:16:14.2558920Z         "unit"
2026-06-21T05:16:14.2559122Z       ],
2026-06-21T05:16:14.2559223Z       "stages": {
2026-06-21T05:16:14.2559324Z         "doc": {
2026-06-21T05:16:14.2559461Z           "complete": false,
2026-06-21T05:16:14.2559576Z           "evidence": []
2026-06-21T05:16:14.2559672Z         },
2026-06-21T05:16:14.2559775Z         "impl": {
2026-06-21T05:16:14.2559881Z           "complete": true,
2026-06-21T05:16:14.2560000Z           "evidence": [
2026-06-21T05:16:14.2560100Z             {
2026-06-21T05:16:14.2560248Z               "path": "crates/spt-live/src/context.rs",
2026-06-21T05:16:14.2560358Z               "line": 26
2026-06-21T05:16:14.2560462Z             },
2026-06-21T05:16:14.2560577Z             {
2026-06-21T05:16:14.2560705Z               "path": "crates/spt-live/src/context.rs",
2026-06-21T05:16:14.2560826Z               "line": 135
2026-06-21T05:16:14.2560911Z             },
2026-06-21T05:16:14.2561016Z             {
2026-06-21T05:16:14.2561155Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-21T05:16:14.2561273Z               "line": 26
2026-06-21T05:16:14.2561378Z             },
2026-06-21T05:16:14.2561489Z             {
2026-06-21T05:16:14.2561639Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-21T05:16:14.2561744Z               "line": 237
2026-06-21T05:16:14.2561854Z             }
2026-06-21T05:16:14.2561958Z           ]
2026-06-21T05:16:14.2562068Z         },
2026-06-21T05:16:14.2562178Z         "int": {
2026-06-21T05:16:14.2562282Z           "complete": false,
2026-06-21T05:16:14.2562398Z           "evidence": []
2026-06-21T05:16:14.2562493Z         },
2026-06-21T05:16:14.2562597Z         "unit": {
2026-06-21T05:16:14.2562707Z           "complete": true,
2026-06-21T05:16:14.2562817Z           "evidence": [
2026-06-21T05:16:14.2562926Z             {
2026-06-21T05:16:14.2563066Z               "path": "crates/spt-live/src/context.rs",
2026-06-21T05:16:14.2563179Z               "line": 161
2026-06-21T05:16:14.2563284Z             },
2026-06-21T05:16:14.2563385Z             {
2026-06-21T05:16:14.2563517Z               "path": "crates/spt-live/src/context.rs",
2026-06-21T05:16:14.2563748Z               "line": 170
2026-06-21T05:16:14.2563846Z             },
2026-06-21T05:16:14.2563941Z             {
2026-06-21T05:16:14.2564080Z               "path": "crates/spt-live/src/context.rs",
2026-06-21T05:16:14.2564187Z               "line": 179
2026-06-21T05:16:14.2564286Z             },
2026-06-21T05:16:14.2564388Z             {
2026-06-21T05:16:14.2564530Z               "path": "crates/spt-live/src/context.rs",
2026-06-21T05:16:14.2564640Z               "line": 190
2026-06-21T05:16:14.2564736Z             },
2026-06-21T05:16:14.2564844Z             {
2026-06-21T05:16:14.2564984Z               "path": "crates/spt-live/src/context.rs",
2026-06-21T05:16:14.2565188Z               "line": 199
2026-06-21T05:16:14.2565294Z             },
2026-06-21T05:16:14.2565393Z             {
2026-06-21T05:16:14.2565531Z               "path": "crates/spt-live/src/context.rs",
2026-06-21T05:16:14.2565642Z               "line": 216
2026-06-21T05:16:14.2565741Z             },
2026-06-21T05:16:14.2565841Z             {
2026-06-21T05:16:14.2565981Z               "path": "crates/spt-live/src/context.rs",
2026-06-21T05:16:14.2566084Z               "line": 242
2026-06-21T05:16:14.2566189Z             },
2026-06-21T05:16:14.2566296Z             {
2026-06-21T05:16:14.2566428Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-21T05:16:14.2566534Z               "line": 295
2026-06-21T05:16:14.2566634Z             },
2026-06-21T05:16:14.2566737Z             {
2026-06-21T05:16:14.2566879Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-21T05:16:14.2566988Z               "line": 244
2026-06-21T05:16:14.2567097Z             },
2026-06-21T05:16:14.2567192Z             {
2026-06-21T05:16:14.2567355Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-21T05:16:14.2567458Z               "line": 265
2026-06-21T05:16:14.2567565Z             },
2026-06-21T05:16:14.2567660Z             {
2026-06-21T05:16:14.2567807Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-21T05:16:14.2567918Z               "line": 293
2026-06-21T05:16:14.2568017Z             },
2026-06-21T05:16:14.2568122Z             {
2026-06-21T05:16:14.2568270Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-21T05:16:14.2568365Z               "line": 317
2026-06-21T05:16:14.2568470Z             },
2026-06-21T05:16:14.2568571Z             {
2026-06-21T05:16:14.2568723Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-21T05:16:14.2568824Z               "line": 327
2026-06-21T05:16:14.2568928Z             },
2026-06-21T05:16:14.2569129Z             {
2026-06-21T05:16:14.2569280Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-21T05:16:14.2569408Z               "line": 540
2026-06-21T05:16:14.2569508Z             }
2026-06-21T05:16:14.2569616Z           ]
2026-06-21T05:16:14.2569716Z         }
2026-06-21T05:16:14.2569821Z       }
2026-06-21T05:16:14.2569926Z     },
2026-06-21T05:16:14.2570035Z     {
2026-06-21T05:16:14.2570180Z       "id": "REQ-HAZARD-DRIVEN-BY-IDLE-REMOTE-EVICT",
2026-06-21T05:16:14.2574933Z       "title": "An spt-hosted endpoint driven by a REMOTE controller whose remote is gone but whose broker connection stays OPEN (a wedged/lost pump that never delivers the detach) AND whose session is IDLE (no output) stays latched ONLINE+CONTROLLED forever: the W1 drain-evict only fires on OUTPUT (CONTROLLER_WRITE_DEADLINE on a backed-up write), a clean disconnect self-heals via detach_if→clear_controller, but an idle session with a half-open/wedged controller connection produces neither signal. PROVED repro-first on a real broker (v0.13.0 W5, inject_control_wedge.rs w5_a2): controller_by STAYS Some(origin) and driven_by STAYS Some after the remote is abandoned without a clean EOF on an idle session — so the brain reconcile CANNOT detect it from KIND_SESSIONS controller_by (the broker still reports it controlled). FIX DIRECTION (doyle ruling 2026-06-19, broker-side single-writer — the broker owns driven_by/clear_controller): wire the EXISTING D4c NetPresence connection-disconnect event → clear_controller for any session whose controller identity == the dead origin (become_controller already stores Some(origin); presence events already exist — modest wiring, NOT a new probe). The liveness ORACLE is QUIC's own keepalive/idle-timeout: a presence-disconnect IS a real QUIC conn close, already tolerant of transient blips within the keepalive window, so NO heavy partition ADR is needed UNLESS the QUIC timeout proves too slow for the UX (then mint an ADR for a faster controller-heartbeat + its false-evict bound). Composes with W1 (output path) + W5 Gap B (no-session) — this is the third, idle-remote, leg. (v0.13.0 follow-up)",
2026-06-21T05:16:14.2575305Z       "requiredStages": [],
2026-06-21T05:16:14.2575404Z       "stages": {
2026-06-21T05:16:14.2575510Z         "doc": {
2026-06-21T05:16:14.2575620Z           "complete": false,
2026-06-21T05:16:14.2575729Z           "evidence": []
2026-06-21T05:16:14.2575830Z         },
2026-06-21T05:16:14.2575939Z         "impl": {
2026-06-21T05:16:14.2576072Z           "complete": false,
2026-06-21T05:16:14.2576188Z           "evidence": []
2026-06-21T05:16:14.2576296Z         },
2026-06-21T05:16:14.2576401Z         "int": {
2026-06-21T05:16:14.2576517Z           "complete": false,
2026-06-21T05:16:14.2576625Z           "evidence": []
2026-06-21T05:16:14.2576735Z         },
2026-06-21T05:16:14.2576832Z         "unit": {
2026-06-21T05:16:14.2576940Z           "complete": false,
2026-06-21T05:16:14.2577055Z           "evidence": []
2026-06-21T05:16:14.2577152Z         }
2026-06-21T05:16:14.2577259Z       }
2026-06-21T05:16:14.2577359Z     },
2026-06-21T05:16:14.2577464Z     {
2026-06-21T05:16:14.2577609Z       "id": "REQ-HAZARD-DRIVEN-BY-SELFHEAL",
2026-06-21T05:16:14.2579259Z       "title": "An spt-hosted endpoint's ONLINE+CONTROLLED state (`driven_by`) must CLEAR even when the detach IPC is lost — do NOT rely on the detach signal (same lesson as REQ-HAZARD-HOSTED-LIVENESS-RECONCILE B2): the reconcile loop clears `driven_by` when the endpoint has no live controller/session. Today a wedged or lost pump never delivers the detach, so the endpoint stays latched CONTROLLED forever. Composes with W1 (the wedge no longer blocks the detach) and rides the same pull-primary reconcile substrate as B2. (v0.13.0)",
2026-06-21T05:16:14.2579404Z       "requiredStages": [
2026-06-21T05:16:14.2579516Z         "impl",
2026-06-21T05:16:14.2579626Z         "unit",
2026-06-21T05:16:14.2579728Z         "int"
2026-06-21T05:16:14.2579826Z       ],
2026-06-21T05:16:14.2579925Z       "stages": {
2026-06-21T05:16:14.2580026Z         "doc": {
2026-06-21T05:16:14.2580148Z           "complete": false,
2026-06-21T05:16:14.2580261Z           "evidence": []
2026-06-21T05:16:14.2580386Z         },
2026-06-21T05:16:14.2580496Z         "impl": {
2026-06-21T05:16:14.2580595Z           "complete": true,
2026-06-21T05:16:14.2580701Z           "evidence": [
2026-06-21T05:16:14.2580801Z             {
2026-06-21T05:16:14.2580953Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2581068Z               "line": 538
2026-06-21T05:16:14.2581177Z             },
2026-06-21T05:16:14.2581273Z             {
2026-06-21T05:16:14.2581411Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T05:16:14.2581520Z               "line": 625
2026-06-21T05:16:14.2581617Z             },
2026-06-21T05:16:14.2581721Z             {
2026-06-21T05:16:14.2581893Z               "path": "crates/spt-daemon/tests/driven_by_selfheal.rs",
2026-06-21T05:16:14.2581998Z               "line": 21
2026-06-21T05:16:14.2582102Z             }
2026-06-21T05:16:14.2582198Z           ]
2026-06-21T05:16:14.2582294Z         },
2026-06-21T05:16:14.2582398Z         "int": {
2026-06-21T05:16:14.2582518Z           "complete": true,
2026-06-21T05:16:14.2582618Z           "evidence": [
2026-06-21T05:16:14.2582712Z             {
2026-06-21T05:16:14.2582888Z               "path": "crates/spt-daemon/tests/driven_by_selfheal.rs",
2026-06-21T05:16:14.2582989Z               "line": 236
2026-06-21T05:16:14.2583193Z             },
2026-06-21T05:16:14.2583299Z             {
2026-06-21T05:16:14.2583469Z               "path": "crates/spt-daemon/tests/driven_by_selfheal.rs",
2026-06-21T05:16:14.2583580Z               "line": 396
2026-06-21T05:16:14.2583685Z             },
2026-06-21T05:16:14.2583789Z             {
2026-06-21T05:16:14.2583957Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
2026-06-21T05:16:14.2584070Z               "line": 1493
2026-06-21T05:16:14.2584167Z             },
2026-06-21T05:16:14.2584276Z             {
2026-06-21T05:16:14.2584448Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
2026-06-21T05:16:14.2584656Z               "line": 1645
2026-06-21T05:16:14.2584758Z             }
2026-06-21T05:16:14.2584849Z           ]
2026-06-21T05:16:14.2584953Z         },
2026-06-21T05:16:14.2585052Z         "unit": {
2026-06-21T05:16:14.2585176Z           "complete": true,
2026-06-21T05:16:14.2585279Z           "evidence": [
2026-06-21T05:16:14.2585374Z             {
2026-06-21T05:16:14.2585527Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2585627Z               "line": 887
2026-06-21T05:16:14.2585731Z             }
2026-06-21T05:16:14.2585833Z           ]
2026-06-21T05:16:14.2585937Z         }
2026-06-21T05:16:14.2586046Z       }
2026-06-21T05:16:14.2586147Z     },
2026-06-21T05:16:14.2586256Z     {
2026-06-21T05:16:14.2586405Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-21T05:16:14.2586581Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-21T05:16:14.2586694Z       "requiredStages": [
2026-06-21T05:16:14.2586805Z         "impl",
2026-06-21T05:16:14.2586923Z         "unit"
2026-06-21T05:16:14.2587024Z       ],
2026-06-21T05:16:14.2587134Z       "stages": {
2026-06-21T05:16:14.2587229Z         "doc": {
2026-06-21T05:16:14.2587344Z           "complete": false,
2026-06-21T05:16:14.2587454Z           "evidence": []
2026-06-21T05:16:14.2587558Z         },
2026-06-21T05:16:14.2587659Z         "impl": {
2026-06-21T05:16:14.2587778Z           "complete": true,
2026-06-21T05:16:14.2587891Z           "evidence": [
2026-06-21T05:16:14.2587991Z             {
2026-06-21T05:16:14.2588137Z               "path": "crates/spt-live/src/echo.rs",
2026-06-21T05:16:14.2588241Z               "line": 25
2026-06-21T05:16:14.2591004Z             },
2026-06-21T05:16:14.2591136Z             {
2026-06-21T05:16:14.2591295Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-21T05:16:14.2591408Z               "line": 26
2026-06-21T05:16:14.2591499Z             },
2026-06-21T05:16:14.2591604Z             {
2026-06-21T05:16:14.2591742Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-21T05:16:14.2591858Z               "line": 159
2026-06-21T05:16:14.2591962Z             }
2026-06-21T05:16:14.2592057Z           ]
2026-06-21T05:16:14.2592162Z         },
2026-06-21T05:16:14.2592267Z         "int": {
2026-06-21T05:16:14.2592376Z           "complete": false,
2026-06-21T05:16:14.2592482Z           "evidence": []
2026-06-21T05:16:14.2592586Z         },
2026-06-21T05:16:14.2592691Z         "unit": {
2026-06-21T05:16:14.2592797Z           "complete": true,
2026-06-21T05:16:14.2592906Z           "evidence": [
2026-06-21T05:16:14.2593006Z             {
2026-06-21T05:16:14.2593151Z               "path": "crates/spt-live/src/echo.rs",
2026-06-21T05:16:14.2593249Z               "line": 188
2026-06-21T05:16:14.2593348Z             },
2026-06-21T05:16:14.2593453Z             {
2026-06-21T05:16:14.2593583Z               "path": "crates/spt-live/src/echo.rs",
2026-06-21T05:16:14.2593691Z               "line": 240
2026-06-21T05:16:14.2593792Z             },
2026-06-21T05:16:14.2593907Z             {
2026-06-21T05:16:14.2594049Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-21T05:16:14.2594155Z               "line": 186
2026-06-21T05:16:14.2594259Z             }
2026-06-21T05:16:14.2594359Z           ]
2026-06-21T05:16:14.2594455Z         }
2026-06-21T05:16:14.2594554Z       }
2026-06-21T05:16:14.2594649Z     },
2026-06-21T05:16:14.2594888Z     {
2026-06-21T05:16:14.2595017Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-21T05:16:14.2595212Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-21T05:16:14.2595327Z       "requiredStages": [
2026-06-21T05:16:14.2595428Z         "impl",
2026-06-21T05:16:14.2595532Z         "unit"
2026-06-21T05:16:14.2595631Z       ],
2026-06-21T05:16:14.2595726Z       "stages": {
2026-06-21T05:16:14.2595835Z         "doc": {
2026-06-21T05:16:14.2595938Z           "complete": false,
2026-06-21T05:16:14.2596044Z           "evidence": []
2026-06-21T05:16:14.2596150Z         },
2026-06-21T05:16:14.2596253Z         "impl": {
2026-06-21T05:16:14.2596473Z           "complete": true,
2026-06-21T05:16:14.2596572Z           "evidence": [
2026-06-21T05:16:14.2596683Z             {
2026-06-21T05:16:14.2596826Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-21T05:16:14.2596930Z               "line": 48
2026-06-21T05:16:14.2597036Z             },
2026-06-21T05:16:14.2597145Z             {
2026-06-21T05:16:14.2597279Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-21T05:16:14.2597389Z               "line": 55
2026-06-21T05:16:14.2597493Z             },
2026-06-21T05:16:14.2597604Z             {
2026-06-21T05:16:14.2597732Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-21T05:16:14.2597841Z               "line": 74
2026-06-21T05:16:14.2597947Z             },
2026-06-21T05:16:14.2598051Z             {
2026-06-21T05:16:14.2598190Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-21T05:16:14.2598291Z               "line": 91
2026-06-21T05:16:14.2598399Z             }
2026-06-21T05:16:14.2598498Z           ]
2026-06-21T05:16:14.2598603Z         },
2026-06-21T05:16:14.2598711Z         "int": {
2026-06-21T05:16:14.2598829Z           "complete": false,
2026-06-21T05:16:14.2598935Z           "evidence": []
2026-06-21T05:16:14.2599106Z         },
2026-06-21T05:16:14.2599212Z         "unit": {
2026-06-21T05:16:14.2599321Z           "complete": true,
2026-06-21T05:16:14.2599440Z           "evidence": [
2026-06-21T05:16:14.2599536Z             {
2026-06-21T05:16:14.2599670Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-21T05:16:14.2599778Z               "line": 149
2026-06-21T05:16:14.2599875Z             },
2026-06-21T05:16:14.2599979Z             {
2026-06-21T05:16:14.2600112Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-21T05:16:14.2600219Z               "line": 166
2026-06-21T05:16:14.2600322Z             },
2026-06-21T05:16:14.2600427Z             {
2026-06-21T05:16:14.2600552Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-21T05:16:14.2600670Z               "line": 176
2026-06-21T05:16:14.2600781Z             },
2026-06-21T05:16:14.2600881Z             {
2026-06-21T05:16:14.2601018Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-21T05:16:14.2601122Z               "line": 194
2026-06-21T05:16:14.2601222Z             },
2026-06-21T05:16:14.2601330Z             {
2026-06-21T05:16:14.2601458Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-21T05:16:14.2601560Z               "line": 207
2026-06-21T05:16:14.2601654Z             }
2026-06-21T05:16:14.2601749Z           ]
2026-06-21T05:16:14.2601850Z         }
2026-06-21T05:16:14.2601954Z       }
2026-06-21T05:16:14.2602049Z     },
2026-06-21T05:16:14.2602150Z     {
2026-06-21T05:16:14.2602288Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-21T05:16:14.2602488Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-21T05:16:14.2602603Z       "requiredStages": [
2026-06-21T05:16:14.2602708Z         "impl",
2026-06-21T05:16:14.2602813Z         "unit"
2026-06-21T05:16:14.2602913Z       ],
2026-06-21T05:16:14.2603013Z       "stages": {
2026-06-21T05:16:14.2603118Z         "doc": {
2026-06-21T05:16:14.2603237Z           "complete": false,
2026-06-21T05:16:14.2603338Z           "evidence": []
2026-06-21T05:16:14.2603438Z         },
2026-06-21T05:16:14.2603663Z         "impl": {
2026-06-21T05:16:14.2603767Z           "complete": true,
2026-06-21T05:16:14.2603880Z           "evidence": [
2026-06-21T05:16:14.2603970Z             {
2026-06-21T05:16:14.2604124Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.2604237Z               "line": 466
2026-06-21T05:16:14.2604338Z             },
2026-06-21T05:16:14.2604443Z             {
2026-06-21T05:16:14.2604575Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-21T05:16:14.2604682Z               "line": 26
2026-06-21T05:16:14.2604786Z             }
2026-06-21T05:16:14.2604895Z           ]
2026-06-21T05:16:14.2604997Z         },
2026-06-21T05:16:14.2605200Z         "int": {
2026-06-21T05:16:14.2605307Z           "complete": false,
2026-06-21T05:16:14.2605401Z           "evidence": []
2026-06-21T05:16:14.2605501Z         },
2026-06-21T05:16:14.2605612Z         "unit": {
2026-06-21T05:16:14.2605721Z           "complete": true,
2026-06-21T05:16:14.2605825Z           "evidence": [
2026-06-21T05:16:14.2605931Z             {
2026-06-21T05:16:14.2606073Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-21T05:16:14.2606177Z               "line": 150
2026-06-21T05:16:14.2606287Z             },
2026-06-21T05:16:14.2606390Z             {
2026-06-21T05:16:14.2606518Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-21T05:16:14.2606633Z               "line": 208
2026-06-21T05:16:14.2606728Z             }
2026-06-21T05:16:14.2606832Z           ]
2026-06-21T05:16:14.2606933Z         }
2026-06-21T05:16:14.2607038Z       }
2026-06-21T05:16:14.2607142Z     },
2026-06-21T05:16:14.2607229Z     {
2026-06-21T05:16:14.2607386Z       "id": "REQ-HAZARD-EFFECT-JOURNAL-PTY-WEDGE",
2026-06-21T05:16:14.2616486Z       "title": "The effect journal serializes EVERY PTY effect under one mutex held ACROSS two fsyncs AND the blocking PTY write — so interactive input stutters and ultimately wedges the daemon hard. ROOT (doyle /diagnose, code-grounded + MEASURED on the operator's real Windows box, 2026-06-19): EffectJournal::apply_once (effect.rs:168-188) takes `inner.lock()` and holds it across `write_line(PENDING)` → `effect()` → `write_line(DONE)`, where write_line (effect.rs:235-239) does flush()+sync_all() (a full FlushFileBuffers) — so each effect pays TWO fsyncs under a GLOBAL lock, and the closure `effect()` (the actual PTY write, broker.rs:1257 EffectKind::PtyWrite via attach.rs:197 send_effect) runs while the lock is held. Two operator-visible facets, ONE root: (A) STUTTER/LAG — every keystroke is a PtyWrite effect = 2× sync_all serialized; measured fsync on %LOCALAPPDATA%\\spt-core = median 6.5ms, spikes to 198ms (C: was recently at 100%), so ~13ms+ per keystroke best case, hundreds under contention → 'many but not all keypresses take 100s of ms, choppy, worsens with volume'. (B) HARD PERMANENT WEDGE — when a PtyWrite `effect()` blocks (ConPTY input buffer full / harness not draining stdin), the journal lock is held INDEFINITELY → the single-threaded inbound-stream dispatch (dispatch.rs serve_attach, which both applies input effects AND opens attaches) can never progress → EVERY subsequent attach (`spt rc --view`/`--take`) fails with 'attach request: brain IPC read deadline elapsed' (confirmed: two retries deadline identically; broker control-plane KIND queries still answer — different thread). This REFUTES the W2-deferred ruling that park-(b)/(c) is 'Windows-benign because ConPTY absorbs 4MiB' — on the real box the input path wedges regardless. DISTINCT from W1 (REQ-HAZARD-INJECT-CONTROL-COEXIST = the OUTPUT drain, correctly fixed @8b5583e; output uses broker.rs:1106 append, NOT the fsync journal). This is the INPUT/effect-journal path W1 never touched, and it is THE wedge the operator hits with --take/--view. FIX DIRECTION (candidates, repro-first — extend inject_control_wedge.rs to a REAL backed-up-PTY-consumer + a real rc-client attach assertion, the gap W1's gate missed): (1) do NOT hold the journal lock across effect() — reserve the key + fsync PENDING under lock, RELEASE, run effect(), re-acquire to fsync DONE + mark applied (preserve crash-idempotency via the per-key reservation, not a global hold); (2) bound/fail-fast the PtyWrite itself (the W2-deferred park bound — write_input must never block indefinitely, DSR-answer must not hold the writer mutex across a blocking write); (3) drop per-keystroke fsync on the interactive path — PtyWrite effects are EPHEMERAL (a keystroke lost on a broker crash is retyped; PTY state is not reconstructed from keystroke replay), so in-memory applied-set dedup suffices (the broker survives the brain — that IS the dedup anchor), with async/batched fsync or no-fsync for EffectKind::PtyWrite while durable kinds (NetSend/NetDial/Registry/Spool) keep their fsync. Combine (1)+(3) at minimum. Add a KNOWN-HAZARDS.md entry on landing. (v0.13.0)",
2026-06-21T05:16:14.2616950Z       "requiredStages": [
2026-06-21T05:16:14.2617058Z         "impl",
2026-06-21T05:16:14.2617164Z         "unit",
2026-06-21T05:16:14.2617274Z         "int"
2026-06-21T05:16:14.2617387Z       ],
2026-06-21T05:16:14.2617493Z       "stages": {
2026-06-21T05:16:14.2617598Z         "doc": {
2026-06-21T05:16:14.2617702Z           "complete": false,
2026-06-21T05:16:14.2617813Z           "evidence": []
2026-06-21T05:16:14.2617913Z         },
2026-06-21T05:16:14.2618021Z         "impl": {
2026-06-21T05:16:14.2618132Z           "complete": true,
2026-06-21T05:16:14.2618237Z           "evidence": [
2026-06-21T05:16:14.2618346Z             {
2026-06-21T05:16:14.2618490Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-21T05:16:14.2618604Z               "line": 99
2026-06-21T05:16:14.2618704Z             },
2026-06-21T05:16:14.2618810Z             {
2026-06-21T05:16:14.2619039Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-21T05:16:14.2619139Z               "line": 201
2026-06-21T05:16:14.2619238Z             }
2026-06-21T05:16:14.2619334Z           ]
2026-06-21T05:16:14.2619449Z         },
2026-06-21T05:16:14.2619552Z         "int": {
2026-06-21T05:16:14.2619661Z           "complete": true,
2026-06-21T05:16:14.2619771Z           "evidence": [
2026-06-21T05:16:14.2619874Z             {
2026-06-21T05:16:14.2620045Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
2026-06-21T05:16:14.2620151Z               "line": 734
2026-06-21T05:16:14.2620255Z             }
2026-06-21T05:16:14.2620351Z           ]
2026-06-21T05:16:14.2620456Z         },
2026-06-21T05:16:14.2620560Z         "unit": {
2026-06-21T05:16:14.2620675Z           "complete": true,
2026-06-21T05:16:14.2620785Z           "evidence": [
2026-06-21T05:16:14.2620884Z             {
2026-06-21T05:16:14.2621028Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-21T05:16:14.2621133Z               "line": 517
2026-06-21T05:16:14.2621233Z             },
2026-06-21T05:16:14.2621334Z             {
2026-06-21T05:16:14.2621476Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-21T05:16:14.2621576Z               "line": 576
2026-06-21T05:16:14.2621677Z             }
2026-06-21T05:16:14.2621790Z           ]
2026-06-21T05:16:14.2621886Z         }
2026-06-21T05:16:14.2621978Z       }
2026-06-21T05:16:14.2622076Z     },
2026-06-21T05:16:14.2622180Z     {
2026-06-21T05:16:14.2622328Z       "id": "REQ-HAZARD-ELEVATED-DAEMON-SPAWN",
2026-06-21T05:16:14.2623670Z       "title": "The daemon always runs unelevated in the invoking user's universe, regardless of which command spawns it: an elevated spawner de-elevates (Windows: UAC linked token via CreateProcessWithTokenW; Linux: drop to SUDO_UID/SUDO_GID + the invoker's HOME) — an elevated daemon's pipes deny unelevated clients (every later spt reads not-running→spawn→bind Access-denied) and a sudo'd daemon roots the user's state universe (5.7)",
2026-06-21T05:16:14.2623799Z       "requiredStages": [
2026-06-21T05:16:14.2623906Z         "doc",
2026-06-21T05:16:14.2624010Z         "impl",
2026-06-21T05:16:14.2624110Z         "unit"
2026-06-21T05:16:14.2624211Z       ],
2026-06-21T05:16:14.2624314Z       "stages": {
2026-06-21T05:16:14.2624530Z         "doc": {
2026-06-21T05:16:14.2624633Z           "complete": true,
2026-06-21T05:16:14.2624744Z           "evidence": [
2026-06-21T05:16:14.2624845Z             {
2026-06-21T05:16:14.2624976Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T05:16:14.2625085Z               "line": 214
2026-06-21T05:16:14.2625186Z             }
2026-06-21T05:16:14.2625286Z           ]
2026-06-21T05:16:14.2625386Z         },
2026-06-21T05:16:14.2625487Z         "impl": {
2026-06-21T05:16:14.2625601Z           "complete": true,
2026-06-21T05:16:14.2625715Z           "evidence": [
2026-06-21T05:16:14.2625807Z             {
2026-06-21T05:16:14.2625953Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.2626150Z               "line": 56
2026-06-21T05:16:14.2626259Z             },
2026-06-21T05:16:14.2626358Z             {
2026-06-21T05:16:14.2626493Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.2626597Z               "line": 580
2026-06-21T05:16:14.2626703Z             },
2026-06-21T05:16:14.2626798Z             {
2026-06-21T05:16:14.2626945Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T05:16:14.2627056Z               "line": 36
2026-06-21T05:16:14.2627156Z             },
2026-06-21T05:16:14.2627264Z             {
2026-06-21T05:16:14.2627407Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T05:16:14.2627505Z               "line": 59
2026-06-21T05:16:14.2627600Z             },
2026-06-21T05:16:14.2627695Z             {
2026-06-21T05:16:14.2627843Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T05:16:14.2627952Z               "line": 83
2026-06-21T05:16:14.2628058Z             },
2026-06-21T05:16:14.2628163Z             {
2026-06-21T05:16:14.2628306Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T05:16:14.2628407Z               "line": 140
2026-06-21T05:16:14.2628506Z             },
2026-06-21T05:16:14.2628611Z             {
2026-06-21T05:16:14.2628764Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T05:16:14.2628873Z               "line": 159
2026-06-21T05:16:14.2629041Z             },
2026-06-21T05:16:14.2629140Z             {
2026-06-21T05:16:14.2629284Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T05:16:14.2629388Z               "line": 384
2026-06-21T05:16:14.2629493Z             },
2026-06-21T05:16:14.2629594Z             {
2026-06-21T05:16:14.2629727Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T05:16:14.2629837Z               "line": 535
2026-06-21T05:16:14.2629933Z             },
2026-06-21T05:16:14.2630037Z             {
2026-06-21T05:16:14.2630183Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T05:16:14.2630302Z               "line": 581
2026-06-21T05:16:14.2630405Z             },
2026-06-21T05:16:14.2630495Z             {
2026-06-21T05:16:14.2630630Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T05:16:14.2630730Z               "line": 300
2026-06-21T05:16:14.2630839Z             },
2026-06-21T05:16:14.2630940Z             {
2026-06-21T05:16:14.2631068Z               "path": "crates/spt/src/main.rs",
2026-06-21T05:16:14.2631178Z               "line": 42
2026-06-21T05:16:14.2631279Z             }
2026-06-21T05:16:14.2631383Z           ]
2026-06-21T05:16:14.2631483Z         },
2026-06-21T05:16:14.2631584Z         "int": {
2026-06-21T05:16:14.2631688Z           "complete": false,
2026-06-21T05:16:14.2631798Z           "evidence": []
2026-06-21T05:16:14.2631894Z         },
2026-06-21T05:16:14.2631998Z         "unit": {
2026-06-21T05:16:14.2632117Z           "complete": true,
2026-06-21T05:16:14.2632223Z           "evidence": [
2026-06-21T05:16:14.2632331Z             {
2026-06-21T05:16:14.2632476Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T05:16:14.2632581Z               "line": 813
2026-06-21T05:16:14.2632683Z             },
2026-06-21T05:16:14.2632788Z             {
2026-06-21T05:16:14.2632930Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T05:16:14.2633134Z               "line": 854
2026-06-21T05:16:14.2633235Z             },
2026-06-21T05:16:14.2633329Z             {
2026-06-21T05:16:14.2633473Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T05:16:14.2633583Z               "line": 928
2026-06-21T05:16:14.2633682Z             }
2026-06-21T05:16:14.2633783Z           ]
2026-06-21T05:16:14.2633878Z         }
2026-06-21T05:16:14.2633982Z       }
2026-06-21T05:16:14.2634084Z     },
2026-06-21T05:16:14.2634184Z     {
2026-06-21T05:16:14.2634340Z       "id": "REQ-HAZARD-ENDPOINT-RUN-ATTACH-OUTPUT",
2026-06-21T05:16:14.2639253Z       "title": "A clean `spt rc` attach to a LIVE spt-hosted (`endpoint run`) harness must DELIVER the harness's PTY output. KEYSTONE — the operator's central 'attach shows no output' symptom, reproduced on the real dummy-harness fixture (v0.12.1 Wave 1) with NO death and NO wedge: bringup succeeds (online, harness pid alive + heartbeating, psyche hosted), the attach CONNECTS (PUMP_IPC_READER spawned, no RC_FAIL, holds the full window) — but receives EXACTLY 0 bytes over 10s of the harness's flushed [session.self] stdout. DISTINCT from REQ-HAZARD-VIEWER-CLOSE-DETACH (death) and REQ-HAZARD-ATTACH-WEDGE (dead-child backpressure): here the harness is ALIVE and the attach is a clean first subscribe. This BLOCKS the 'view is independent' invariant — re-attach is meaningless if a live endpoint-run harness shows nothing. KNOWN-GOOD (rules out 'no drain'): attach.rs `local_attach_via_loopback_conn_rides_the_same_pump` + `broker_spawns_the_pty_child_in_the_requested_cwd` prove the broker DOES drain+fan a `spawn_session` PTY child to a loopback attach over the SAME transport rc uses. Both spawn_session and endpoint-run's spawn_session_pid send KIND_SPAWN → the same dispatch_spawn (broker.rs:706/835) which starts the per-session drain+OutputLog — so the gap is NARROWER than 'no drain', endpoint-run-specific. Root candidates: (a) spawn_session_pid's SpawnReq stdio/env/cwd differs so the dummy's stdout isn't the captured ConPTY; (b) the harness stdout WRITE BLOCKS because the ConPTY buffer fills (drain not reading THIS pty) — explains alive-but-0-bytes; (c) ConPTY reader-park (KH 7.6) on this path; (d) `spt rc` resolve_session/subscribe for an endpoint-run session subscribes to the wrong/empty log. (v0.12.1)",
2026-06-21T05:16:14.2639610Z       "requiredStages": [
2026-06-21T05:16:14.2639714Z         "impl",
2026-06-21T05:16:14.2639815Z         "unit",
2026-06-21T05:16:14.2639920Z         "int"
2026-06-21T05:16:14.2640020Z       ],
2026-06-21T05:16:14.2640125Z       "stages": {
2026-06-21T05:16:14.2640230Z         "doc": {
2026-06-21T05:16:14.2640353Z           "complete": false,
2026-06-21T05:16:14.2640460Z           "evidence": []
2026-06-21T05:16:14.2640564Z         },
2026-06-21T05:16:14.2640654Z         "impl": {
2026-06-21T05:16:14.2640772Z           "complete": true,
2026-06-21T05:16:14.2640867Z           "evidence": [
2026-06-21T05:16:14.2640975Z             {
2026-06-21T05:16:14.2641137Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-21T05:16:14.2641233Z               "line": 106
2026-06-21T05:16:14.2641337Z             }
2026-06-21T05:16:14.2641437Z           ]
2026-06-21T05:16:14.2641538Z         },
2026-06-21T05:16:14.2641642Z         "int": {
2026-06-21T05:16:14.2641747Z           "complete": true,
2026-06-21T05:16:14.2641853Z           "evidence": [
2026-06-21T05:16:14.2641957Z             {
2026-06-21T05:16:14.2642116Z               "path": "crates/spt/tests/dummy_harness_e2e.rs",
2026-06-21T05:16:14.2642224Z               "line": 296
2026-06-21T05:16:14.2642329Z             }
2026-06-21T05:16:14.2642426Z           ]
2026-06-21T05:16:14.2642529Z         },
2026-06-21T05:16:14.2642634Z         "unit": {
2026-06-21T05:16:14.2642731Z           "complete": true,
2026-06-21T05:16:14.2642840Z           "evidence": [
2026-06-21T05:16:14.2642945Z             {
2026-06-21T05:16:14.2643098Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T05:16:14.2643310Z               "line": 464
2026-06-21T05:16:14.2643410Z             }
2026-06-21T05:16:14.2643509Z           ]
2026-06-21T05:16:14.2643613Z         }
2026-06-21T05:16:14.2643723Z       }
2026-06-21T05:16:14.2643824Z     },
2026-06-21T05:16:14.2643922Z     {
2026-06-21T05:16:14.2644038Z       "id": "REQ-HAZARD-ENV-SUBST",
2026-06-21T05:16:14.2647389Z       "title": "`spt endpoint run` HONORS manifest [env.<VAR>] direction=inject values (with {key} substitution) on the spt-hosted spawn. Today only the [session.self] command ARGV is {id}-substituted; the [env] inject value is NEITHER substituted NOR applied — manifest.schema.json promises EnvVar.value = 'Value to inject (with substitution)' but prepare_harness_spawn fills only argv and SpawnReq carries no env, so a [env.SPT_ENDPOINT_ID].value='{id}' arrives EMPTY. A FLAGLESS harness (bare `claude`, no argv slot for {id}) then routes the id via [env] → empty → SessionStart sees empty $SPT_ENDPOINT_ID → seeds-by-PPID instead of binding → ZERO perch → NO_PERCH (the actual wall-b bind blocker; perri hard-repro'd). SILENT failure (empty inject, no error). FIX (doyle ruled a): fill every [env] inject value from the SAME {key} catalog as argv/role (mirror F-009 TEMPLATE fill, whole-string fill_template for an env value), thread it through SpawnReq.env → the broker sets it on the spawned PTY child. Correctness fix — schema already promises it, NO manifest change, NO new binary. PAIRS with REQ-SEND-SPT-HOSTED to make endpoint run fully work. doyle F-013. (post-v0.10.0)",
2026-06-21T05:16:14.2647604Z       "requiredStages": [
2026-06-21T05:16:14.2647704Z         "impl",
2026-06-21T05:16:14.2647808Z         "unit",
2026-06-21T05:16:14.2647938Z         "int"
2026-06-21T05:16:14.2648037Z       ],
2026-06-21T05:16:14.2648142Z       "stages": {
2026-06-21T05:16:14.2648257Z         "doc": {
2026-06-21T05:16:14.2648360Z           "complete": false,
2026-06-21T05:16:14.2648470Z           "evidence": []
2026-06-21T05:16:14.2648570Z         },
2026-06-21T05:16:14.2648677Z         "impl": {
2026-06-21T05:16:14.2648806Z           "complete": true,
2026-06-21T05:16:14.2648917Z           "evidence": [
2026-06-21T05:16:14.2649077Z             {
2026-06-21T05:16:14.2649240Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T05:16:14.2649369Z               "line": 123
2026-06-21T05:16:14.2649470Z             },
2026-06-21T05:16:14.2649574Z             {
2026-06-21T05:16:14.2649716Z               "path": "crates/spt-term/src/pty.rs",
2026-06-21T05:16:14.2649823Z               "line": 134
2026-06-21T05:16:14.2649922Z             }
2026-06-21T05:16:14.2650027Z           ]
2026-06-21T05:16:14.2650123Z         },
2026-06-21T05:16:14.2650232Z         "int": {
2026-06-21T05:16:14.2650342Z           "complete": true,
2026-06-21T05:16:14.2650453Z           "evidence": [
2026-06-21T05:16:14.2650556Z             {
2026-06-21T05:16:14.2650700Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-21T05:16:14.2650814Z               "line": 312
2026-06-21T05:16:14.2650928Z             },
2026-06-21T05:16:14.2651039Z             {
2026-06-21T05:16:14.2651185Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-21T05:16:14.2651293Z               "line": 525
2026-06-21T05:16:14.2651404Z             }
2026-06-21T05:16:14.2651507Z           ]
2026-06-21T05:16:14.2651606Z         },
2026-06-21T05:16:14.2651717Z         "unit": {
2026-06-21T05:16:14.2651826Z           "complete": true,
2026-06-21T05:16:14.2651940Z           "evidence": [
2026-06-21T05:16:14.2652041Z             {
2026-06-21T05:16:14.2652193Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T05:16:14.2652298Z               "line": 250
2026-06-21T05:16:14.2652408Z             }
2026-06-21T05:16:14.2652517Z           ]
2026-06-21T05:16:14.2652618Z         }
2026-06-21T05:16:14.2652723Z       }
2026-06-21T05:16:14.2652827Z     },
2026-06-21T05:16:14.2652932Z     {
2026-06-21T05:16:14.2653075Z       "id": "REQ-HAZARD-ENVELOPE-CR-LINESAFE",
2026-06-21T05:16:14.2654816Z       "title": "Envelope CR-linesafety (4.1): the line-framed EVENT codec must neutralize raw carriage returns — `event_body_escape` folds CRLF/lone-CR to the codec's representable linebreak (`\\n`→`<br>`) BEFORE framing, so a body carrying `\\r` (Windows `echo`/CRLF text crossing nodes) cannot survive into the single-line envelope and trigger a receiver terminal CR→col0 overwrite that corrupts the frame. Robustness on unrepresentable input, NOT a wire-format change (decoder untouched, amp-last invariant held). Belt-and-suspenders: `spt send`/`ring` also trim stdin (parity with `notify`).",
2026-06-21T05:16:14.2655051Z       "requiredStages": [
2026-06-21T05:16:14.2655165Z         "impl",
2026-06-21T05:16:14.2655365Z         "unit"
2026-06-21T05:16:14.2655475Z       ],
2026-06-21T05:16:14.2655581Z       "stages": {
2026-06-21T05:16:14.2655685Z         "doc": {
2026-06-21T05:16:14.2655799Z           "complete": false,
2026-06-21T05:16:14.2655905Z           "evidence": []
2026-06-21T05:16:14.2656009Z         },
2026-06-21T05:16:14.2656129Z         "impl": {
2026-06-21T05:16:14.2656248Z           "complete": true,
2026-06-21T05:16:14.2656357Z           "evidence": [
2026-06-21T05:16:14.2656463Z             {
2026-06-21T05:16:14.2656605Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-21T05:16:14.2656718Z               "line": 31
2026-06-21T05:16:14.2656828Z             }
2026-06-21T05:16:14.2656930Z           ]
2026-06-21T05:16:14.2657033Z         },
2026-06-21T05:16:14.2657134Z         "int": {
2026-06-21T05:16:14.2657248Z           "complete": false,
2026-06-21T05:16:14.2657362Z           "evidence": []
2026-06-21T05:16:14.2657463Z         },
2026-06-21T05:16:14.2657572Z         "unit": {
2026-06-21T05:16:14.2657681Z           "complete": true,
2026-06-21T05:16:14.2657792Z           "evidence": [
2026-06-21T05:16:14.2657891Z             {
2026-06-21T05:16:14.2658044Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-21T05:16:14.2658150Z               "line": 181
2026-06-21T05:16:14.2658264Z             }
2026-06-21T05:16:14.2658373Z           ]
2026-06-21T05:16:14.2658474Z         }
2026-06-21T05:16:14.2658573Z       }
2026-06-21T05:16:14.2658674Z     },
2026-06-21T05:16:14.2658780Z     {
2026-06-21T05:16:14.2658916Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-21T05:16:14.2659191Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-21T05:16:14.2659318Z       "requiredStages": [
2026-06-21T05:16:14.2659434Z         "impl",
2026-06-21T05:16:14.2659538Z         "unit"
2026-06-21T05:16:14.2659638Z       ],
2026-06-21T05:16:14.2659744Z       "stages": {
2026-06-21T05:16:14.2659848Z         "doc": {
2026-06-21T05:16:14.2659971Z           "complete": false,
2026-06-21T05:16:14.2660082Z           "evidence": []
2026-06-21T05:16:14.2660186Z         },
2026-06-21T05:16:14.2660296Z         "impl": {
2026-06-21T05:16:14.2660397Z           "complete": true,
2026-06-21T05:16:14.2660511Z           "evidence": [
2026-06-21T05:16:14.2660615Z             {
2026-06-21T05:16:14.2660768Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-21T05:16:14.2660873Z               "line": 49
2026-06-21T05:16:14.2660965Z             },
2026-06-21T05:16:14.2661073Z             {
2026-06-21T05:16:14.2661216Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-21T05:16:14.2661328Z               "line": 81
2026-06-21T05:16:14.2661430Z             }
2026-06-21T05:16:14.2661536Z           ]
2026-06-21T05:16:14.2661633Z         },
2026-06-21T05:16:14.2661740Z         "int": {
2026-06-21T05:16:14.2661849Z           "complete": false,
2026-06-21T05:16:14.2661959Z           "evidence": []
2026-06-21T05:16:14.2662067Z         },
2026-06-21T05:16:14.2662176Z         "unit": {
2026-06-21T05:16:14.2662281Z           "complete": true,
2026-06-21T05:16:14.2662382Z           "evidence": [
2026-06-21T05:16:14.2662481Z             {
2026-06-21T05:16:14.2662625Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-21T05:16:14.2662734Z               "line": 156
2026-06-21T05:16:14.2662945Z             },
2026-06-21T05:16:14.2663049Z             {
2026-06-21T05:16:14.2663197Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-21T05:16:14.2663306Z               "line": 173
2026-06-21T05:16:14.2663411Z             },
2026-06-21T05:16:14.2663512Z             {
2026-06-21T05:16:14.2663649Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-21T05:16:14.2663764Z               "line": 196
2026-06-21T05:16:14.2663865Z             }
2026-06-21T05:16:14.2663964Z           ]
2026-06-21T05:16:14.2664069Z         }
2026-06-21T05:16:14.2664175Z       }
2026-06-21T05:16:14.2664275Z     },
2026-06-21T05:16:14.2664369Z     {
2026-06-21T05:16:14.2664620Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-21T05:16:14.2664819Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-21T05:16:14.2664944Z       "requiredStages": [
2026-06-21T05:16:14.2665052Z         "impl",
2026-06-21T05:16:14.2665159Z         "unit"
2026-06-21T05:16:14.2665263Z       ],
2026-06-21T05:16:14.2665358Z       "stages": {
2026-06-21T05:16:14.2665464Z         "doc": {
2026-06-21T05:16:14.2665568Z           "complete": false,
2026-06-21T05:16:14.2665677Z           "evidence": []
2026-06-21T05:16:14.2665788Z         },
2026-06-21T05:16:14.2665897Z         "impl": {
2026-06-21T05:16:14.2666011Z           "complete": true,
2026-06-21T05:16:14.2666122Z           "evidence": [
2026-06-21T05:16:14.2666231Z             {
2026-06-21T05:16:14.2666379Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-21T05:16:14.2666489Z               "line": 120
2026-06-21T05:16:14.2666593Z             }
2026-06-21T05:16:14.2666694Z           ]
2026-06-21T05:16:14.2666804Z         },
2026-06-21T05:16:14.2666907Z         "int": {
2026-06-21T05:16:14.2667014Z           "complete": false,
2026-06-21T05:16:14.2667123Z           "evidence": []
2026-06-21T05:16:14.2667222Z         },
2026-06-21T05:16:14.2667331Z         "unit": {
2026-06-21T05:16:14.2667442Z           "complete": true,
2026-06-21T05:16:14.2667556Z           "evidence": [
2026-06-21T05:16:14.2667655Z             {
2026-06-21T05:16:14.2667799Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-21T05:16:14.2667908Z               "line": 212
2026-06-21T05:16:14.2668014Z             },
2026-06-21T05:16:14.2668118Z             {
2026-06-21T05:16:14.2668260Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-21T05:16:14.2668381Z               "line": 221
2026-06-21T05:16:14.2668480Z             },
2026-06-21T05:16:14.2668580Z             {
2026-06-21T05:16:14.2668710Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-21T05:16:14.2668824Z               "line": 229
2026-06-21T05:16:14.2668924Z             },
2026-06-21T05:16:14.2669110Z             {
2026-06-21T05:16:14.2669258Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-21T05:16:14.2669373Z               "line": 239
2026-06-21T05:16:14.2669476Z             },
2026-06-21T05:16:14.2669575Z             {
2026-06-21T05:16:14.2669728Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-21T05:16:14.2669836Z               "line": 249
2026-06-21T05:16:14.2669941Z             }
2026-06-21T05:16:14.2670042Z           ]
2026-06-21T05:16:14.2670145Z         }
2026-06-21T05:16:14.2670236Z       }
2026-06-21T05:16:14.2670328Z     },
2026-06-21T05:16:14.2670427Z     {
2026-06-21T05:16:14.2670571Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-21T05:16:14.2670756Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-21T05:16:14.2670876Z       "requiredStages": [
2026-06-21T05:16:14.2670981Z         "impl",
2026-06-21T05:16:14.2671085Z         "unit"
2026-06-21T05:16:14.2671190Z       ],
2026-06-21T05:16:14.2671300Z       "stages": {
2026-06-21T05:16:14.2671405Z         "doc": {
2026-06-21T05:16:14.2671515Z           "complete": false,
2026-06-21T05:16:14.2671625Z           "evidence": []
2026-06-21T05:16:14.2671715Z         },
2026-06-21T05:16:14.2671820Z         "impl": {
2026-06-21T05:16:14.2672039Z           "complete": true,
2026-06-21T05:16:14.2672140Z           "evidence": [
2026-06-21T05:16:14.2672250Z             {
2026-06-21T05:16:14.2672386Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-21T05:16:14.2672505Z               "line": 14
2026-06-21T05:16:14.2672609Z             },
2026-06-21T05:16:14.2672712Z             {
2026-06-21T05:16:14.2672837Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-21T05:16:14.2672938Z               "line": 63
2026-06-21T05:16:14.2673046Z             }
2026-06-21T05:16:14.2673147Z           ]
2026-06-21T05:16:14.2673237Z         },
2026-06-21T05:16:14.2673341Z         "int": {
2026-06-21T05:16:14.2673571Z           "complete": false,
2026-06-21T05:16:14.2673685Z           "evidence": []
2026-06-21T05:16:14.2673791Z         },
2026-06-21T05:16:14.2673895Z         "unit": {
2026-06-21T05:16:14.2674009Z           "complete": true,
2026-06-21T05:16:14.2674116Z           "evidence": [
2026-06-21T05:16:14.2674214Z             {
2026-06-21T05:16:14.2674357Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-21T05:16:14.2674459Z               "line": 164
2026-06-21T05:16:14.2674567Z             },
2026-06-21T05:16:14.2674672Z             {
2026-06-21T05:16:14.2674802Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-21T05:16:14.2674919Z               "line": 198
2026-06-21T05:16:14.2675024Z             },
2026-06-21T05:16:14.2675129Z             {
2026-06-21T05:16:14.2675260Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-21T05:16:14.2675374Z               "line": 220
2026-06-21T05:16:14.2675485Z             }
2026-06-21T05:16:14.2675584Z           ]
2026-06-21T05:16:14.2675704Z         }
2026-06-21T05:16:14.2675804Z       }
2026-06-21T05:16:14.2675899Z     },
2026-06-21T05:16:14.2675999Z     {
2026-06-21T05:16:14.2676133Z       "id": "REQ-HAZARD-EPOCH-RESET",
2026-06-21T05:16:14.2677501Z       "title": "Advertisement-epoch reset strands a node: peers' higher last-seen epoch drops the reset node's fresh advertisements as Stale until the counter outruns history. Common case (full reinstall/re-pair) is mitigated by REQ-SUBNET-7's ceremony eviction (peer-side epoch memory dies with the deleted row — acceptance-verified); the residual narrow slice (epoch file lost, identity kept) is documented, guard deferred to a field hit (4.11)",
2026-06-21T05:16:14.2677627Z       "requiredStages": [],
2026-06-21T05:16:14.2677730Z       "stages": {
2026-06-21T05:16:14.2677838Z         "doc": {
2026-06-21T05:16:14.2677949Z           "complete": true,
2026-06-21T05:16:14.2678054Z           "evidence": [
2026-06-21T05:16:14.2678153Z             {
2026-06-21T05:16:14.2678283Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T05:16:14.2678407Z               "line": 165
2026-06-21T05:16:14.2678506Z             }
2026-06-21T05:16:14.2678607Z           ]
2026-06-21T05:16:14.2678712Z         },
2026-06-21T05:16:14.2678820Z         "impl": {
2026-06-21T05:16:14.2679017Z           "complete": false,
2026-06-21T05:16:14.2679150Z           "evidence": []
2026-06-21T05:16:14.2679246Z         },
2026-06-21T05:16:14.2679360Z         "int": {
2026-06-21T05:16:14.2679464Z           "complete": false,
2026-06-21T05:16:14.2679580Z           "evidence": []
2026-06-21T05:16:14.2679684Z         },
2026-06-21T05:16:14.2679789Z         "unit": {
2026-06-21T05:16:14.2679909Z           "complete": false,
2026-06-21T05:16:14.2680017Z           "evidence": []
2026-06-21T05:16:14.2680122Z         }
2026-06-21T05:16:14.2680222Z       }
2026-06-21T05:16:14.2680325Z     },
2026-06-21T05:16:14.2680429Z     {
2026-06-21T05:16:14.2680559Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-21T05:16:14.2680801Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-21T05:16:14.2680916Z       "requiredStages": [
2026-06-21T05:16:14.2681025Z         "impl",
2026-06-21T05:16:14.2681131Z         "unit"
2026-06-21T05:16:14.2681236Z       ],
2026-06-21T05:16:14.2681349Z       "stages": {
2026-06-21T05:16:14.2681564Z         "doc": {
2026-06-21T05:16:14.2681683Z           "complete": false,
2026-06-21T05:16:14.2681784Z           "evidence": []
2026-06-21T05:16:14.2681889Z         },
2026-06-21T05:16:14.2681998Z         "impl": {
2026-06-21T05:16:14.2682109Z           "complete": true,
2026-06-21T05:16:14.2682222Z           "evidence": [
2026-06-21T05:16:14.2682317Z             {
2026-06-21T05:16:14.2682462Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-21T05:16:14.2682569Z               "line": 76
2026-06-21T05:16:14.2682676Z             },
2026-06-21T05:16:14.2682777Z             {
2026-06-21T05:16:14.2682922Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-21T05:16:14.2683122Z               "line": 167
2026-06-21T05:16:14.2683230Z             },
2026-06-21T05:16:14.2683339Z             {
2026-06-21T05:16:14.2683469Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-21T05:16:14.2683577Z               "line": 233
2026-06-21T05:16:14.2683678Z             },
2026-06-21T05:16:14.2683788Z             {
2026-06-21T05:16:14.2683935Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-21T05:16:14.2684036Z               "line": 272
2026-06-21T05:16:14.2684141Z             }
2026-06-21T05:16:14.2684245Z           ]
2026-06-21T05:16:14.2684346Z         },
2026-06-21T05:16:14.2684445Z         "int": {
2026-06-21T05:16:14.2684550Z           "complete": false,
2026-06-21T05:16:14.2684680Z           "evidence": []
2026-06-21T05:16:14.2684793Z         },
2026-06-21T05:16:14.2684904Z         "unit": {
2026-06-21T05:16:14.2685009Z           "complete": true,
2026-06-21T05:16:14.2685122Z           "evidence": [
2026-06-21T05:16:14.2685218Z             {
2026-06-21T05:16:14.2685358Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-21T05:16:14.2685470Z               "line": 321
2026-06-21T05:16:14.2685574Z             },
2026-06-21T05:16:14.2685680Z             {
2026-06-21T05:16:14.2685811Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-21T05:16:14.2685934Z               "line": 329
2026-06-21T05:16:14.2686036Z             },
2026-06-21T05:16:14.2686130Z             {
2026-06-21T05:16:14.2686264Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-21T05:16:14.2686369Z               "line": 356
2026-06-21T05:16:14.2686478Z             },
2026-06-21T05:16:14.2686569Z             {
2026-06-21T05:16:14.2686713Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-21T05:16:14.2686826Z               "line": 395
2026-06-21T05:16:14.2686928Z             },
2026-06-21T05:16:14.2689825Z             {
2026-06-21T05:16:14.2690006Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-21T05:16:14.2690126Z               "line": 406
2026-06-21T05:16:14.2690234Z             },
2026-06-21T05:16:14.2690335Z             {
2026-06-21T05:16:14.2690488Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-21T05:16:14.2690601Z               "line": 418
2026-06-21T05:16:14.2690725Z             },
2026-06-21T05:16:14.2690838Z             {
2026-06-21T05:16:14.2691008Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-21T05:16:14.2691114Z               "line": 442
2026-06-21T05:16:14.2691223Z             }
2026-06-21T05:16:14.2691323Z           ]
2026-06-21T05:16:14.2691424Z         }
2026-06-21T05:16:14.2691533Z       }
2026-06-21T05:16:14.2691628Z     },
2026-06-21T05:16:14.2691729Z     {
2026-06-21T05:16:14.2691857Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-21T05:16:14.2692039Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-21T05:16:14.2692158Z       "requiredStages": [
2026-06-21T05:16:14.2692262Z         "impl",
2026-06-21T05:16:14.2692373Z         "int"
2026-06-21T05:16:14.2692477Z       ],
2026-06-21T05:16:14.2692586Z       "stages": {
2026-06-21T05:16:14.2692688Z         "doc": {
2026-06-21T05:16:14.2692815Z           "complete": false,
2026-06-21T05:16:14.2692931Z           "evidence": []
2026-06-21T05:16:14.2693031Z         },
2026-06-21T05:16:14.2693139Z         "impl": {
2026-06-21T05:16:14.2693389Z           "complete": true,
2026-06-21T05:16:14.2693506Z           "evidence": [
2026-06-21T05:16:14.2693606Z             {
2026-06-21T05:16:14.2693762Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T05:16:14.2693866Z               "line": 22
2026-06-21T05:16:14.2693971Z             }
2026-06-21T05:16:14.2694077Z           ]
2026-06-21T05:16:14.2694180Z         },
2026-06-21T05:16:14.2694291Z         "int": {
2026-06-21T05:16:14.2694401Z           "complete": true,
2026-06-21T05:16:14.2694509Z           "evidence": [
2026-06-21T05:16:14.2694606Z             {
2026-06-21T05:16:14.2694753Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-21T05:16:14.2694964Z               "line": 18
2026-06-21T05:16:14.2695064Z             }
2026-06-21T05:16:14.2695168Z           ]
2026-06-21T05:16:14.2695255Z         },
2026-06-21T05:16:14.2695363Z         "unit": {
2026-06-21T05:16:14.2695468Z           "complete": false,
2026-06-21T05:16:14.2695574Z           "evidence": []
2026-06-21T05:16:14.2695687Z         }
2026-06-21T05:16:14.2695788Z       }
2026-06-21T05:16:14.2695894Z     },
2026-06-21T05:16:14.2695992Z     {
2026-06-21T05:16:14.2696144Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-21T05:16:14.2696366Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-21T05:16:14.2696476Z       "requiredStages": [
2026-06-21T05:16:14.2696581Z         "impl",
2026-06-21T05:16:14.2696681Z         "unit"
2026-06-21T05:16:14.2696786Z       ],
2026-06-21T05:16:14.2696891Z       "stages": {
2026-06-21T05:16:14.2696991Z         "doc": {
2026-06-21T05:16:14.2697110Z           "complete": false,
2026-06-21T05:16:14.2697220Z           "evidence": []
2026-06-21T05:16:14.2697319Z         },
2026-06-21T05:16:14.2697420Z         "impl": {
2026-06-21T05:16:14.2697530Z           "complete": true,
2026-06-21T05:16:14.2697634Z           "evidence": [
2026-06-21T05:16:14.2697744Z             {
2026-06-21T05:16:14.2697892Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.2698006Z               "line": 465
2026-06-21T05:16:14.2698103Z             },
2026-06-21T05:16:14.2698206Z             {
2026-06-21T05:16:14.2698355Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-21T05:16:14.2698461Z               "line": 27
2026-06-21T05:16:14.2698564Z             }
2026-06-21T05:16:14.2698660Z           ]
2026-06-21T05:16:14.2698766Z         },
2026-06-21T05:16:14.2698869Z         "int": {
2026-06-21T05:16:14.2699069Z           "complete": false,
2026-06-21T05:16:14.2699184Z           "evidence": []
2026-06-21T05:16:14.2699269Z         },
2026-06-21T05:16:14.2699374Z         "unit": {
2026-06-21T05:16:14.2699508Z           "complete": true,
2026-06-21T05:16:14.2699612Z           "evidence": [
2026-06-21T05:16:14.2699718Z             {
2026-06-21T05:16:14.2699865Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.2699975Z               "line": 990
2026-06-21T05:16:14.2700080Z             },
2026-06-21T05:16:14.2700180Z             {
2026-06-21T05:16:14.2700328Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-21T05:16:14.2700433Z               "line": 181
2026-06-21T05:16:14.2700537Z             }
2026-06-21T05:16:14.2700643Z           ]
2026-06-21T05:16:14.2700743Z         }
2026-06-21T05:16:14.2700842Z       }
2026-06-21T05:16:14.2700943Z     },
2026-06-21T05:16:14.2701053Z     {
2026-06-21T05:16:14.2701194Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-21T05:16:14.2701384Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-21T05:16:14.2701497Z       "requiredStages": [
2026-06-21T05:16:14.2701597Z         "impl",
2026-06-21T05:16:14.2701708Z         "unit"
2026-06-21T05:16:14.2701812Z       ],
2026-06-21T05:16:14.2701916Z       "stages": {
2026-06-21T05:16:14.2702023Z         "doc": {
2026-06-21T05:16:14.2702136Z           "complete": false,
2026-06-21T05:16:14.2702246Z           "evidence": []
2026-06-21T05:16:14.2702337Z         },
2026-06-21T05:16:14.2702542Z         "impl": {
2026-06-21T05:16:14.2702661Z           "complete": true,
2026-06-21T05:16:14.2702770Z           "evidence": [
2026-06-21T05:16:14.2702871Z             {
2026-06-21T05:16:14.2703023Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2703128Z               "line": 73
2026-06-21T05:16:14.2703230Z             },
2026-06-21T05:16:14.2703328Z             {
2026-06-21T05:16:14.2703471Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2703582Z               "line": 972
2026-06-21T05:16:14.2703676Z             },
2026-06-21T05:16:14.2703776Z             {
2026-06-21T05:16:14.2703921Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-21T05:16:14.2704123Z               "line": 20
2026-06-21T05:16:14.2704223Z             },
2026-06-21T05:16:14.2704331Z             {
2026-06-21T05:16:14.2704479Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-21T05:16:14.2704584Z               "line": 100
2026-06-21T05:16:14.2704698Z             },
2026-06-21T05:16:14.2704793Z             {
2026-06-21T05:16:14.2704922Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T05:16:14.2705027Z               "line": 603
2026-06-21T05:16:14.2705123Z             },
2026-06-21T05:16:14.2705228Z             {
2026-06-21T05:16:14.2705374Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-21T05:16:14.2705485Z               "line": 68
2026-06-21T05:16:14.2705589Z             },
2026-06-21T05:16:14.2705685Z             {
2026-06-21T05:16:14.2705834Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-21T05:16:14.2705932Z               "line": 80
2026-06-21T05:16:14.2706038Z             }
2026-06-21T05:16:14.2706139Z           ]
2026-06-21T05:16:14.2706242Z         },
2026-06-21T05:16:14.2706343Z         "int": {
2026-06-21T05:16:14.2706459Z           "complete": true,
2026-06-21T05:16:14.2706567Z           "evidence": [
2026-06-21T05:16:14.2706671Z             {
2026-06-21T05:16:14.2706814Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-21T05:16:14.2706931Z               "line": 44
2026-06-21T05:16:14.2707036Z             }
2026-06-21T05:16:14.2707136Z           ]
2026-06-21T05:16:14.2707231Z         },
2026-06-21T05:16:14.2707336Z         "unit": {
2026-06-21T05:16:14.2707456Z           "complete": true,
2026-06-21T05:16:14.2707569Z           "evidence": [
2026-06-21T05:16:14.2707670Z             {
2026-06-21T05:16:14.2707813Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2707927Z               "line": 1181
2026-06-21T05:16:14.2708033Z             },
2026-06-21T05:16:14.2708132Z             {
2026-06-21T05:16:14.2708285Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.2708401Z               "line": 1197
2026-06-21T05:16:14.2708491Z             },
2026-06-21T05:16:14.2708591Z             {
2026-06-21T05:16:14.2708734Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2708843Z               "line": 2246
2026-06-21T05:16:14.2709011Z             },
2026-06-21T05:16:14.2709114Z             {
2026-06-21T05:16:14.2709259Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-21T05:16:14.2709369Z               "line": 152
2026-06-21T05:16:14.2709476Z             },
2026-06-21T05:16:14.2709576Z             {
2026-06-21T05:16:14.2709716Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-21T05:16:14.2709834Z               "line": 175
2026-06-21T05:16:14.2709939Z             },
2026-06-21T05:16:14.2710034Z             {
2026-06-21T05:16:14.2710163Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-21T05:16:14.2710278Z               "line": 186
2026-06-21T05:16:14.2710378Z             },
2026-06-21T05:16:14.2710477Z             {
2026-06-21T05:16:14.2710622Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-21T05:16:14.2710731Z               "line": 202
2026-06-21T05:16:14.2710879Z             },
2026-06-21T05:16:14.2710983Z             {
2026-06-21T05:16:14.2711251Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-21T05:16:14.2711350Z               "line": 216
2026-06-21T05:16:14.2711455Z             },
2026-06-21T05:16:14.2711552Z             {
2026-06-21T05:16:14.2711698Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-21T05:16:14.2711802Z               "line": 137
2026-06-21T05:16:14.2711902Z             },
2026-06-21T05:16:14.2712010Z             {
2026-06-21T05:16:14.2712138Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2712239Z               "line": 8152
2026-06-21T05:16:14.2712339Z             },
2026-06-21T05:16:14.2712443Z             {
2026-06-21T05:16:14.2712682Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-21T05:16:14.2712782Z               "line": 30
2026-06-21T05:16:14.2712883Z             },
2026-06-21T05:16:14.2712987Z             {
2026-06-21T05:16:14.2713131Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-21T05:16:14.2713235Z               "line": 73
2026-06-21T05:16:14.2713349Z             }
2026-06-21T05:16:14.2713450Z           ]
2026-06-21T05:16:14.2713554Z         }
2026-06-21T05:16:14.2713659Z       }
2026-06-21T05:16:14.2713760Z     },
2026-06-21T05:16:14.2713860Z     {
2026-06-21T05:16:14.2714017Z       "id": "REQ-HAZARD-HOSTED-LIVENESS-RECONCILE",
2026-06-21T05:16:14.2718088Z       "title": "B2 KEYSTONE: a daemon-hosted (spt-hosted) endpoint's info.json status is RECONCILED to real liveness, not left latched online. The broker exit-waiter (broker.rs:889-910) reaps its in-mem session table + emits ExitEvent but NEVER touches info.json; lifecycle::mark_offline only fires on Psyche teardown — so a dead/exited harness (operator closed the tab) stays status=online forever (is_perch_alive returns ONLINE for daemon-hosted, liveness.rs:80-93). FIX (doyle ruled PULL-PRIMARY — the live-status analog of REQ-HAZARD-ROSTER-GHOST): the livehost reconcile loop (reconcile_once livehost.rs:226-313) queries the broker's live session set (KIND_SESSIONS) each tick and, for any status=online live_agent perch PAST the boot grace whose endpoint has NO live broker session, marks it offline (lifecycle::mark_offline → status=offline → is_perch_alive=false). GATED on spt-hosted (controllable==Some(true)) so a HARNESS-HOSTED relay live agent (api listen, legitimately online with no broker session) is NEVER mis-marked. Crash-robust + self-healing on the next tick (clear-on-event is not crash-robust alone). PUSH (brain ExitEvent→mark_offline) is an OPTIONAL fast-path only if the daemon brain is reliably subscribed to all hosted sessions; correctness rides the pull. Broker stays stateless (ADR-0004 §B — brain owns the info.json write). (v0.12.0)",
2026-06-21T05:16:14.2718264Z       "requiredStages": [
2026-06-21T05:16:14.2718373Z         "impl",
2026-06-21T05:16:14.2718477Z         "unit",
2026-06-21T05:16:14.2718579Z         "int"
2026-06-21T05:16:14.2718688Z       ],
2026-06-21T05:16:14.2718788Z       "stages": {
2026-06-21T05:16:14.2718879Z         "doc": {
2026-06-21T05:16:14.2719093Z           "complete": false,
2026-06-21T05:16:14.2719204Z           "evidence": []
2026-06-21T05:16:14.2719308Z         },
2026-06-21T05:16:14.2719413Z         "impl": {
2026-06-21T05:16:14.2719538Z           "complete": true,
2026-06-21T05:16:14.2719642Z           "evidence": [
2026-06-21T05:16:14.2719746Z             {
2026-06-21T05:16:14.2719905Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2720013Z               "line": 510
2026-06-21T05:16:14.2720122Z             },
2026-06-21T05:16:14.2720223Z             {
2026-06-21T05:16:14.2720374Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2720494Z               "line": 704
2026-06-21T05:16:14.2720590Z             }
2026-06-21T05:16:14.2720699Z           ]
2026-06-21T05:16:14.2720800Z         },
2026-06-21T05:16:14.2720909Z         "int": {
2026-06-21T05:16:14.2721013Z           "complete": true,
2026-06-21T05:16:14.2721124Z           "evidence": [
2026-06-21T05:16:14.2721233Z             {
2026-06-21T05:16:14.2721482Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2721595Z               "line": 1119
2026-06-21T05:16:14.2721691Z             },
2026-06-21T05:16:14.2721792Z             {
2026-06-21T05:16:14.2721938Z               "path": "crates/spt/tests/attach_wedge_e2e.rs",
2026-06-21T05:16:14.2722039Z               "line": 312
2026-06-21T05:16:14.2722146Z             }
2026-06-21T05:16:14.2722243Z           ]
2026-06-21T05:16:14.2722338Z         },
2026-06-21T05:16:14.2722439Z         "unit": {
2026-06-21T05:16:14.2722556Z           "complete": true,
2026-06-21T05:16:14.2722655Z           "evidence": [
2026-06-21T05:16:14.2722857Z             {
2026-06-21T05:16:14.2723008Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2723109Z               "line": 821
2026-06-21T05:16:14.2723213Z             }
2026-06-21T05:16:14.2723313Z           ]
2026-06-21T05:16:14.2723419Z         }
2026-06-21T05:16:14.2723524Z       }
2026-06-21T05:16:14.2723632Z     },
2026-06-21T05:16:14.2723734Z     {
2026-06-21T05:16:14.2723852Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-21T05:16:14.2724134Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-21T05:16:14.2724243Z       "requiredStages": [
2026-06-21T05:16:14.2724350Z         "impl",
2026-06-21T05:16:14.2724453Z         "unit"
2026-06-21T05:16:14.2724558Z       ],
2026-06-21T05:16:14.2724669Z       "stages": {
2026-06-21T05:16:14.2724772Z         "doc": {
2026-06-21T05:16:14.2724887Z           "complete": true,
2026-06-21T05:16:14.2724994Z           "evidence": [
2026-06-21T05:16:14.2725101Z             {
2026-06-21T05:16:14.2725238Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T05:16:14.2725349Z               "line": 133
2026-06-21T05:16:14.2725446Z             }
2026-06-21T05:16:14.2725546Z           ]
2026-06-21T05:16:14.2725652Z         },
2026-06-21T05:16:14.2725752Z         "impl": {
2026-06-21T05:16:14.2725870Z           "complete": true,
2026-06-21T05:16:14.2725976Z           "evidence": [
2026-06-21T05:16:14.2726081Z             {
2026-06-21T05:16:14.2726224Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-21T05:16:14.2726334Z               "line": 65
2026-06-21T05:16:14.2726438Z             },
2026-06-21T05:16:14.2726539Z             {
2026-06-21T05:16:14.2726672Z               "path": "crates/spt-proto/src/id.rs",
2026-06-21T05:16:14.2726777Z               "line": 17
2026-06-21T05:16:14.2726887Z             },
2026-06-21T05:16:14.2726992Z             {
2026-06-21T05:16:14.2727139Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T05:16:14.2727254Z               "line": 146
2026-06-21T05:16:14.2727358Z             },
2026-06-21T05:16:14.2727463Z             {
2026-06-21T05:16:14.2727602Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.2727706Z               "line": 310
2026-06-21T05:16:14.2727815Z             },
2026-06-21T05:16:14.2727915Z             {
2026-06-21T05:16:14.2728056Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.2728161Z               "line": 441
2026-06-21T05:16:14.2728271Z             },
2026-06-21T05:16:14.2728375Z             {
2026-06-21T05:16:14.2728514Z               "path": "crates/spt/src/api/worker.rs",
2026-06-21T05:16:14.2728624Z               "line": 32
2026-06-21T05:16:14.2728723Z             },
2026-06-21T05:16:14.2728825Z             {
2026-06-21T05:16:14.2729014Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2729125Z               "line": 1283
2026-06-21T05:16:14.2729230Z             },
2026-06-21T05:16:14.2729343Z             {
2026-06-21T05:16:14.2729492Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2729606Z               "line": 6161
2026-06-21T05:16:14.2729711Z             },
2026-06-21T05:16:14.2729812Z             {
2026-06-21T05:16:14.2729934Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2730045Z               "line": 6443
2026-06-21T05:16:14.2730263Z             }
2026-06-21T05:16:14.2730360Z           ]
2026-06-21T05:16:14.2730465Z         },
2026-06-21T05:16:14.2730568Z         "int": {
2026-06-21T05:16:14.2730673Z           "complete": false,
2026-06-21T05:16:14.2730778Z           "evidence": []
2026-06-21T05:16:14.2730883Z         },
2026-06-21T05:16:14.2730987Z         "unit": {
2026-06-21T05:16:14.2731103Z           "complete": true,
2026-06-21T05:16:14.2731203Z           "evidence": [
2026-06-21T05:16:14.2731307Z             {
2026-06-21T05:16:14.2731442Z               "path": "crates/spt-proto/src/id.rs",
2026-06-21T05:16:14.2731546Z               "line": 94
2026-06-21T05:16:14.2731641Z             },
2026-06-21T05:16:14.2731841Z             {
2026-06-21T05:16:14.2731974Z               "path": "crates/spt-proto/src/id.rs",
2026-06-21T05:16:14.2732085Z               "line": 111
2026-06-21T05:16:14.2732185Z             },
2026-06-21T05:16:14.2732289Z             {
2026-06-21T05:16:14.2732428Z               "path": "crates/spt-proto/src/id.rs",
2026-06-21T05:16:14.2732542Z               "line": 124
2026-06-21T05:16:14.2732648Z             },
2026-06-21T05:16:14.2732752Z             {
2026-06-21T05:16:14.2732875Z               "path": "crates/spt-proto/src/id.rs",
2026-06-21T05:16:14.2732979Z               "line": 134
2026-06-21T05:16:14.2733084Z             },
2026-06-21T05:16:14.2733182Z             {
2026-06-21T05:16:14.2733321Z               "path": "crates/spt-proto/src/id.rs",
2026-06-21T05:16:14.2733422Z               "line": 144
2026-06-21T05:16:14.2733530Z             },
2026-06-21T05:16:14.2733631Z             {
2026-06-21T05:16:14.2733769Z               "path": "crates/spt-proto/src/id.rs",
2026-06-21T05:16:14.2733873Z               "line": 156
2026-06-21T05:16:14.2733980Z             },
2026-06-21T05:16:14.2734079Z             {
2026-06-21T05:16:14.2734232Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T05:16:14.2734346Z               "line": 746
2026-06-21T05:16:14.2734450Z             },
2026-06-21T05:16:14.2734561Z             {
2026-06-21T05:16:14.2734703Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T05:16:14.2734813Z               "line": 309
2026-06-21T05:16:14.2734919Z             }
2026-06-21T05:16:14.2735018Z           ]
2026-06-21T05:16:14.2735128Z         }
2026-06-21T05:16:14.2735229Z       }
2026-06-21T05:16:14.2735332Z     },
2026-06-21T05:16:14.2735433Z     {
2026-06-21T05:16:14.2735568Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-21T05:16:14.2735733Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-21T05:16:14.2735842Z       "requiredStages": [
2026-06-21T05:16:14.2735951Z         "impl",
2026-06-21T05:16:14.2736064Z         "unit"
2026-06-21T05:16:14.2736168Z       ],
2026-06-21T05:16:14.2736274Z       "stages": {
2026-06-21T05:16:14.2736378Z         "doc": {
2026-06-21T05:16:14.2736493Z           "complete": false,
2026-06-21T05:16:14.2736608Z           "evidence": []
2026-06-21T05:16:14.2736712Z         },
2026-06-21T05:16:14.2736818Z         "impl": {
2026-06-21T05:16:14.2736942Z           "complete": true,
2026-06-21T05:16:14.2737046Z           "evidence": [
2026-06-21T05:16:14.2737152Z             {
2026-06-21T05:16:14.2737299Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T05:16:14.2737403Z               "line": 128
2026-06-21T05:16:14.2737514Z             }
2026-06-21T05:16:14.2737613Z           ]
2026-06-21T05:16:14.2737718Z         },
2026-06-21T05:16:14.2737824Z         "int": {
2026-06-21T05:16:14.2737942Z           "complete": false,
2026-06-21T05:16:14.2738048Z           "evidence": []
2026-06-21T05:16:14.2738153Z         },
2026-06-21T05:16:14.2738257Z         "unit": {
2026-06-21T05:16:14.2738370Z           "complete": true,
2026-06-21T05:16:14.2738494Z           "evidence": [
2026-06-21T05:16:14.2738597Z             {
2026-06-21T05:16:14.2738745Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T05:16:14.2738846Z               "line": 205
2026-06-21T05:16:14.2739022Z             }
2026-06-21T05:16:14.2739222Z           ]
2026-06-21T05:16:14.2739326Z         }
2026-06-21T05:16:14.2739441Z       }
2026-06-21T05:16:14.2739532Z     },
2026-06-21T05:16:14.2739636Z     {
2026-06-21T05:16:14.2739775Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-21T05:16:14.2739946Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-21T05:16:14.2740057Z       "requiredStages": [
2026-06-21T05:16:14.2740156Z         "impl",
2026-06-21T05:16:14.2740266Z         "unit"
2026-06-21T05:16:14.2740358Z       ],
2026-06-21T05:16:14.2740457Z       "stages": {
2026-06-21T05:16:14.2740576Z         "doc": {
2026-06-21T05:16:14.2740696Z           "complete": false,
2026-06-21T05:16:14.2740983Z           "evidence": []
2026-06-21T05:16:14.2741086Z         },
2026-06-21T05:16:14.2741190Z         "impl": {
2026-06-21T05:16:14.2741295Z           "complete": true,
2026-06-21T05:16:14.2741401Z           "evidence": [
2026-06-21T05:16:14.2741504Z             {
2026-06-21T05:16:14.2741634Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T05:16:14.2741763Z               "line": 367
2026-06-21T05:16:14.2741862Z             },
2026-06-21T05:16:14.2741968Z             {
2026-06-21T05:16:14.2742101Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T05:16:14.2742210Z               "line": 378
2026-06-21T05:16:14.2742316Z             },
2026-06-21T05:16:14.2742416Z             {
2026-06-21T05:16:14.2742554Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T05:16:14.2742664Z               "line": 396
2026-06-21T05:16:14.2742773Z             }
2026-06-21T05:16:14.2742874Z           ]
2026-06-21T05:16:14.2742979Z         },
2026-06-21T05:16:14.2743093Z         "int": {
2026-06-21T05:16:14.2743208Z           "complete": false,
2026-06-21T05:16:14.2743313Z           "evidence": []
2026-06-21T05:16:14.2743416Z         },
2026-06-21T05:16:14.2743521Z         "unit": {
2026-06-21T05:16:14.2743630Z           "complete": true,
2026-06-21T05:16:14.2743733Z           "evidence": [
2026-06-21T05:16:14.2743843Z             {
2026-06-21T05:16:14.2743978Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T05:16:14.2744081Z               "line": 420
2026-06-21T05:16:14.2744186Z             },
2026-06-21T05:16:14.2744291Z             {
2026-06-21T05:16:14.2744419Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T05:16:14.2744535Z               "line": 441
2026-06-21T05:16:14.2744640Z             },
2026-06-21T05:16:14.2744743Z             {
2026-06-21T05:16:14.2744874Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T05:16:14.2744978Z               "line": 811
2026-06-21T05:16:14.2745082Z             },
2026-06-21T05:16:14.2745188Z             {
2026-06-21T05:16:14.2745316Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T05:16:14.2745436Z               "line": 822
2026-06-21T05:16:14.2745536Z             },
2026-06-21T05:16:14.2745645Z             {
2026-06-21T05:16:14.2745775Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T05:16:14.2745883Z               "line": 835
2026-06-21T05:16:14.2745983Z             }
2026-06-21T05:16:14.2746075Z           ]
2026-06-21T05:16:14.2746171Z         }
2026-06-21T05:16:14.2746278Z       }
2026-06-21T05:16:14.2746383Z     },
2026-06-21T05:16:14.2746483Z     {
2026-06-21T05:16:14.2746633Z       "id": "REQ-HAZARD-INJECT-CONTROL-COEXIST",
2026-06-21T05:16:14.2754133Z       "title": "SPINE INVARIANT (v0.13.0 keystone): the broker must accept INJECTED keystrokes into an spt-hosted PTY (the v0.11.0 raw direct-inject today; the ADR-0022 translation-binary choreography tomorrow) WHILE a live `spt rc` controller is attached to the SAME PTY, without (a) the operator losing control, (b) the endpoint latching ONLINE+CONTROLLED, or (c) the broker wedging. The injection inlet is PERMANENT — spt-claude-code requires keystroke injection — so this is root-caused + fixed at the PTY-injection layer, IN STEP with the ADR-0022 delivery redesign that formalizes the inlet. REOPENS the wedge facet of REQ-HAZARD-ATTACH-WEDGE: the v0.12.1 prove-don't-change covered only DEAD-CHILD backpressure, NOT the injection trigger (operator's signal — one injected keystroke succeeds, the next wedges → the single-threaded broker parks on a blocking PTY/loopback write after injection-induced harness output). REPRO-FIRST on the real dummy-harness fixture (NO theory): instrument to nail the exact blocking call before any fix. Fix candidates: non-blocking/fail-fast PTY write, split input/output, bounded-evicting. Mechanism shared with W2 — spt-core owns EVERY PTY write and applies an injected sequence ATOMICALLY (controller input buffered during the sequence, flushed after) so a stash/restore can't be clobbered. CONFIRMED ROOT (doyle /diagnose 2026-06-19, code-grounded): Broker::append (broker.rs:205-227) fans each live output chunk to the CONTROLLER on a SYNCHRONOUS BLOCKING write_frame held inline in the session's drain thread (the 'authoritative, advances delivered_through' path, D4-1), while VIEWERS use a dedicated writer thread + bounded evicting sync_channel (add_viewer:273 / viewer_writer) that can never stall the drain. So a slow/backed-up controller socket — or the full 64KB loopback duplex (the ATTACH-WEDGE buffer) — BLOCKS the drain thread → output stalls → keystroke echoes stall (PERCEIVED input lag) → unrecoverable wedge when the consumer never drains. TRIGGERS ON NORMAL INTERACTIVE rc USE under heavy harness output (TUI redraw), NOT only message injection — same root, wider repro. FIX DIRECTION: move controller delivery off the drain thread onto a dedicated writer (the viewer_writer pattern) BUT preserve the authoritative cursor — block the WRITER thread (not the drain), bound the wedge (deadline → detach/mark-gone, never park forever), never silently evict the operator's authoritative view. (v0.13.0)",
2026-06-21T05:16:14.2754570Z       "requiredStages": [
2026-06-21T05:16:14.2754674Z         "impl",
2026-06-21T05:16:14.2754785Z         "unit",
2026-06-21T05:16:14.2754889Z         "int"
2026-06-21T05:16:14.2754994Z       ],
2026-06-21T05:16:14.2755114Z       "stages": {
2026-06-21T05:16:14.2755218Z         "doc": {
2026-06-21T05:16:14.2755337Z           "complete": false,
2026-06-21T05:16:14.2755443Z           "evidence": []
2026-06-21T05:16:14.2755552Z         },
2026-06-21T05:16:14.2755652Z         "impl": {
2026-06-21T05:16:14.2755763Z           "complete": true,
2026-06-21T05:16:14.2755872Z           "evidence": [
2026-06-21T05:16:14.2755976Z             {
2026-06-21T05:16:14.2756134Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2756243Z               "line": 300
2026-06-21T05:16:14.2756354Z             },
2026-06-21T05:16:14.2756458Z             {
2026-06-21T05:16:14.2756616Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2756731Z               "line": 714
2026-06-21T05:16:14.2756833Z             },
2026-06-21T05:16:14.2756933Z             {
2026-06-21T05:16:14.2757067Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2757184Z               "line": 978
2026-06-21T05:16:14.2757298Z             }
2026-06-21T05:16:14.2757399Z           ]
2026-06-21T05:16:14.2757503Z         },
2026-06-21T05:16:14.2757604Z         "int": {
2026-06-21T05:16:14.2757723Z           "complete": true,
2026-06-21T05:16:14.2757832Z           "evidence": [
2026-06-21T05:16:14.2757933Z             {
2026-06-21T05:16:14.2758104Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
2026-06-21T05:16:14.2758209Z               "line": 256
2026-06-21T05:16:14.2758320Z             },
2026-06-21T05:16:14.2758424Z             {
2026-06-21T05:16:14.2758601Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
2026-06-21T05:16:14.2758710Z               "line": 382
2026-06-21T05:16:14.2758810Z             }
2026-06-21T05:16:14.2758916Z           ]
2026-06-21T05:16:14.2759091Z         },
2026-06-21T05:16:14.2759202Z         "unit": {
2026-06-21T05:16:14.2759316Z           "complete": true,
2026-06-21T05:16:14.2759429Z           "evidence": [
2026-06-21T05:16:14.2759624Z             {
2026-06-21T05:16:14.2759774Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2759875Z               "line": 2274
2026-06-21T05:16:14.2759980Z             },
2026-06-21T05:16:14.2760094Z             {
2026-06-21T05:16:14.2760228Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2760342Z               "line": 2332
2026-06-21T05:16:14.2760432Z             }
2026-06-21T05:16:14.2760538Z           ]
2026-06-21T05:16:14.2760647Z         }
2026-06-21T05:16:14.2760747Z       }
2026-06-21T05:16:14.2760849Z     },
2026-06-21T05:16:14.2760948Z     {
2026-06-21T05:16:14.2761105Z       "id": "REQ-HAZARD-INPUT-ACK-BACKPRESSURE",
2026-06-21T05:16:14.2768392Z       "title": "A FLOOD of operator input on one brain↔broker connection deadlocks the broker PERMANENTLY (entire broker — no new/existing attach; the controller stays latched because the per-conn handler can't process the detach). ROOT (doyle /diagnose, code-grounded + HITL capture, the v0.13.0 P1 ctrl+V re-open): `serve_attach` processes a whole `NetStreamData` batch of N operator `Input` records in its inner `for rec in decoder.push()` loop, calling `brain.send_effect(op_id, &bytes)` N times WITHOUT returning to `read_event()` — so the brain writes N `KIND_INPUT` frames back-to-back and drains nothing. The broker's single-threaded per-conn handler answers EACH with `send_frame(applied_envelope)` on the SAME conn (B5 exactly-once ack, KNOWN-HAZARDS 7.2). With the brain not reading, the broker→brain return direction fills (~10 frames = the IPC pipe buffer) → `send_frame` BLOCKS → the handler stops reading → the brain's writes block too → mutual full-duplex DEADLOCK. Capture pinned it: 11 input frames, write_input 11/11 (P0 holds — the PTY write is fine), ack send START=11 / END=10 (frame #11's applied-ack never returns). Same class as the v0.12.1 L0 two-conn split. Windows Terminal's ctrl+V paste accelerator was the trigger (injects the clipboard as a char-by-char key flood) but the deadlock is generic to ANY input flood, NOT ctrl+V-specific and NOT a P0 (PTY-write) or W1 (output-drain) regression. The applied-ack is load-bearing ONLY for `shellchan` (one-at-a-time spool delivery WAITS on `BrokerEvent::Applied`); `serve_attach` DISCARDS it (the operator/rc path is fire-and-forward, op_id for dedup only, never gates on the ack). FIX (doyle-approved): CONDITIONAL ACK — `InputReq` gains `ack: bool` (serde default = true, N-1-safe: an older brain's input still acks = today's behavior). `serve_attach`'s operator path calls `send_effect_no_ack` (ack=false) → `dispatch_input` writes NO applied frame → the per-conn handler never writes back while servicing the flood → it always drains → no deadlock (cures ANY input flood). `shellchan` keeps `send_effect` (ack=true) and its `Applied`-wait. Exactly-once PRESERVED: the broker still dedups by (session, op_id) at the applied-set regardless of the ack. N-1 caveat: an OLD resident broker (self-update window) ignores `ack=false` → still acks → the deadlock persists until a broker restart (inherent KNOWN-HAZARDS 7.9 broker-resident-wire-change class). (v0.13.0)",
2026-06-21T05:16:14.2768612Z       "requiredStages": [
2026-06-21T05:16:14.2768721Z         "doc",
2026-06-21T05:16:14.2768827Z         "impl",
2026-06-21T05:16:14.2769017Z         "unit",
2026-06-21T05:16:14.2769123Z         "int"
2026-06-21T05:16:14.2769223Z       ],
2026-06-21T05:16:14.2769332Z       "stages": {
2026-06-21T05:16:14.2769438Z         "doc": {
2026-06-21T05:16:14.2769547Z           "complete": true,
2026-06-21T05:16:14.2769661Z           "evidence": [
2026-06-21T05:16:14.2769758Z             {
2026-06-21T05:16:14.2769899Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T05:16:14.2770036Z               "line": 454
2026-06-21T05:16:14.2770142Z             }
2026-06-21T05:16:14.2770244Z           ]
2026-06-21T05:16:14.2770353Z         },
2026-06-21T05:16:14.2770464Z         "impl": {
2026-06-21T05:16:14.2770573Z           "complete": true,
2026-06-21T05:16:14.2770812Z           "evidence": [
2026-06-21T05:16:14.2770921Z             {
2026-06-21T05:16:14.2771075Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-21T05:16:14.2771174Z               "line": 203
2026-06-21T05:16:14.2771283Z             },
2026-06-21T05:16:14.2771389Z             {
2026-06-21T05:16:14.2771537Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T05:16:14.2771641Z               "line": 487
2026-06-21T05:16:14.2771747Z             },
2026-06-21T05:16:14.2771852Z             {
2026-06-21T05:16:14.2771985Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2772095Z               "line": 1688
2026-06-21T05:16:14.2772300Z             },
2026-06-21T05:16:14.2772400Z             {
2026-06-21T05:16:14.2772542Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T05:16:14.2772653Z               "line": 331
2026-06-21T05:16:14.2772757Z             }
2026-06-21T05:16:14.2772861Z           ]
2026-06-21T05:16:14.2772961Z         },
2026-06-21T05:16:14.2773081Z         "int": {
2026-06-21T05:16:14.2773185Z           "complete": true,
2026-06-21T05:16:14.2773285Z           "evidence": [
2026-06-21T05:16:14.2773391Z             {
2026-06-21T05:16:14.2773528Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-21T05:16:14.2773644Z               "line": 737
2026-06-21T05:16:14.2773744Z             },
2026-06-21T05:16:14.2773848Z             {
2026-06-21T05:16:14.2773991Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-21T05:16:14.2774101Z               "line": 854
2026-06-21T05:16:14.2774205Z             },
2026-06-21T05:16:14.2774302Z             {
2026-06-21T05:16:14.2774482Z               "path": "crates/spt-daemon/tests/input_ack_deadlock.rs",
2026-06-21T05:16:14.2774593Z               "line": 266
2026-06-21T05:16:14.2774692Z             }
2026-06-21T05:16:14.2774782Z           ]
2026-06-21T05:16:14.2774888Z         },
2026-06-21T05:16:14.2774993Z         "unit": {
2026-06-21T05:16:14.2775105Z           "complete": true,
2026-06-21T05:16:14.2775215Z           "evidence": [
2026-06-21T05:16:14.2775319Z             {
2026-06-21T05:16:14.2775451Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T05:16:14.2775562Z               "line": 985
2026-06-21T05:16:14.2775667Z             },
2026-06-21T05:16:14.2775770Z             {
2026-06-21T05:16:14.2775905Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T05:16:14.2776009Z               "line": 1019
2026-06-21T05:16:14.2776114Z             }
2026-06-21T05:16:14.2776220Z           ]
2026-06-21T05:16:14.2776324Z         }
2026-06-21T05:16:14.2776428Z       }
2026-06-21T05:16:14.2776534Z     },
2026-06-21T05:16:14.2776644Z     {
2026-06-21T05:16:14.2776777Z       "id": "REQ-HAZARD-INSTANT-UNDERFLOW",
2026-06-21T05:16:14.2777377Z       "title": "Scheduling never subtracts a Duration from Instant::now() (underflow-panics on a host booted more recently than the offset); 'due now / never run' is Option<Instant>=None gated on forward duration_since only (5.9)",
2026-06-21T05:16:14.2777503Z       "requiredStages": [
2026-06-21T05:16:14.2777611Z         "impl",
2026-06-21T05:16:14.2777712Z         "unit"
2026-06-21T05:16:14.2777818Z       ],
2026-06-21T05:16:14.2777916Z       "stages": {
2026-06-21T05:16:14.2778015Z         "doc": {
2026-06-21T05:16:14.2778125Z           "complete": false,
2026-06-21T05:16:14.2778238Z           "evidence": []
2026-06-21T05:16:14.2778342Z         },
2026-06-21T05:16:14.2778447Z         "impl": {
2026-06-21T05:16:14.2778558Z           "complete": true,
2026-06-21T05:16:14.2778661Z           "evidence": [
2026-06-21T05:16:14.2778768Z             {
2026-06-21T05:16:14.2778919Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T05:16:14.2779111Z               "line": 759
2026-06-21T05:16:14.2779206Z             }
2026-06-21T05:16:14.2779305Z           ]
2026-06-21T05:16:14.2779411Z         },
2026-06-21T05:16:14.2779515Z         "int": {
2026-06-21T05:16:14.2779625Z           "complete": false,
2026-06-21T05:16:14.2779839Z           "evidence": []
2026-06-21T05:16:14.2779954Z         },
2026-06-21T05:16:14.2780065Z         "unit": {
2026-06-21T05:16:14.2780173Z           "complete": true,
2026-06-21T05:16:14.2780284Z           "evidence": [
2026-06-21T05:16:14.2780385Z             {
2026-06-21T05:16:14.2780530Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T05:16:14.2780645Z               "line": 873
2026-06-21T05:16:14.2780740Z             }
2026-06-21T05:16:14.2780842Z           ]
2026-06-21T05:16:14.2780932Z         }
2026-06-21T05:16:14.2781029Z       }
2026-06-21T05:16:14.2781129Z     },
2026-06-21T05:16:14.2781238Z     {
2026-06-21T05:16:14.2781509Z       "id": "REQ-HAZARD-LIVEHOST-BOOT-LIVENESS-GATE",
2026-06-21T05:16:14.2783889Z       "title": "B5: `spt daemon start` does NOT revive phantom Psyches for dead-but-online-latched perches. Today reconcile_once (livehost.rs:285) spawns a Psyche per status=online live_agent perch at boot WITHOUT verifying the harness child / {id}-psyche is actually alive — so a Cold start after an unclean stop revives N psyches for N dead-but-latched perches (3 psyches for 3 dead perches). FIX: gate the boot psyche-spawn on real child-liveness — a perch with NO live broker session (the B2 reconcile signal) is marked OFFLINE at boot instead of hosted, so a dead-harness perch is never revived. Shares the B2 reconcile loop (this is its boot-gate arm); composes with B2's honest latch. Also closes wall-a's psyche_host_error gap (residency-confirm does not run at boot tick-1, livehost.rs:395-441 / 257-263). (v0.12.0)",
2026-06-21T05:16:14.2784017Z       "requiredStages": [
2026-06-21T05:16:14.2784126Z         "impl",
2026-06-21T05:16:14.2784246Z         "unit",
2026-06-21T05:16:14.2784346Z         "int"
2026-06-21T05:16:14.2784446Z       ],
2026-06-21T05:16:14.2784561Z       "stages": {
2026-06-21T05:16:14.2784656Z         "doc": {
2026-06-21T05:16:14.2784775Z           "complete": false,
2026-06-21T05:16:14.2784881Z           "evidence": []
2026-06-21T05:16:14.2785004Z         },
2026-06-21T05:16:14.2785110Z         "impl": {
2026-06-21T05:16:14.2785219Z           "complete": true,
2026-06-21T05:16:14.2785328Z           "evidence": [
2026-06-21T05:16:14.2785424Z             {
2026-06-21T05:16:14.2785585Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2785694Z               "line": 705
2026-06-21T05:16:14.2785800Z             }
2026-06-21T05:16:14.2785912Z           ]
2026-06-21T05:16:14.2786011Z         },
2026-06-21T05:16:14.2786122Z         "int": {
2026-06-21T05:16:14.2786236Z           "complete": true,
2026-06-21T05:16:14.2786349Z           "evidence": [
2026-06-21T05:16:14.2786460Z             {
2026-06-21T05:16:14.2786627Z               "path": "crates/spt/tests/livehost_bootgate_e2e.rs",
2026-06-21T05:16:14.2789465Z               "line": 24
2026-06-21T05:16:14.2789594Z             }
2026-06-21T05:16:14.2789695Z           ]
2026-06-21T05:16:14.2789799Z         },
2026-06-21T05:16:14.2789908Z         "unit": {
2026-06-21T05:16:14.2790038Z           "complete": true,
2026-06-21T05:16:14.2790142Z           "evidence": [
2026-06-21T05:16:14.2790248Z             {
2026-06-21T05:16:14.2790395Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2790509Z               "line": 918
2026-06-21T05:16:14.2790610Z             }
2026-06-21T05:16:14.2790710Z           ]
2026-06-21T05:16:14.2790814Z         }
2026-06-21T05:16:14.2790916Z       }
2026-06-21T05:16:14.2791015Z     },
2026-06-21T05:16:14.2791114Z     {
2026-06-21T05:16:14.2791257Z       "id": "REQ-HAZARD-LIVEHOST-BOOT-RACE",
2026-06-21T05:16:14.2794888Z       "title": "The brain's daemon-hosted Psyche lifecycle surfaces a host-FAILURE on the live perch (harness-diagnosable) and runs net-INDEPENDENTLY. When reconcile_once→host_one→spawn_psyche fails for a state=live_agent+status=online endpoint (e.g. the adapter's psyche binary absent from its install dir, REQ-INSTALL-11), the failure MUST be written to the perch info.json as a CURRENT-STATE field (reason + ts + attempt count; overwritten each 5s retry, CLEARED on successful host) and surfaced by `spt endpoint list`/status — never left as an eprintln on the brain's invisible stderr where a harness reading only perch state is blind. status=online stays authoritative (agent reachable; only the Psyche is missing — brain-restart rehydrate legitimately has online-without-Psyche windows), so this is a SEPARATE psyche-host-health field, never a status de-stamp. Net-independence is a locked-in invariant: spawn_live_host (brainproc.rs:230) reaches the reconcile and hosts the Psyche on a net-less/unpaired/peer-pump-STALLED node, proven by a REAL detached-daemon E2E (real broker→brain-child, real api seed+listen, real install-dir psyche binary). spt-core SURFACES the failure; the adapter owns fixing its packaging.",
2026-06-21T05:16:14.2795292Z       "requiredStages": [
2026-06-21T05:16:14.2795384Z         "impl",
2026-06-21T05:16:14.2795492Z         "unit",
2026-06-21T05:16:14.2795593Z         "int"
2026-06-21T05:16:14.2795723Z       ],
2026-06-21T05:16:14.2795821Z       "stages": {
2026-06-21T05:16:14.2795926Z         "doc": {
2026-06-21T05:16:14.2796038Z           "complete": false,
2026-06-21T05:16:14.2796150Z           "evidence": []
2026-06-21T05:16:14.2796254Z         },
2026-06-21T05:16:14.2796360Z         "impl": {
2026-06-21T05:16:14.2796477Z           "complete": true,
2026-06-21T05:16:14.2796585Z           "evidence": [
2026-06-21T05:16:14.2796687Z             {
2026-06-21T05:16:14.2796839Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2796949Z               "line": 391
2026-06-21T05:16:14.2797049Z             },
2026-06-21T05:16:14.2797153Z             {
2026-06-21T05:16:14.2797322Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T05:16:14.2797426Z               "line": 343
2026-06-21T05:16:14.2797520Z             },
2026-06-21T05:16:14.2797627Z             {
2026-06-21T05:16:14.2797750Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2797854Z               "line": 1750
2026-06-21T05:16:14.2797960Z             },
2026-06-21T05:16:14.2798064Z             {
2026-06-21T05:16:14.2798188Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2798294Z               "line": 3191
2026-06-21T05:16:14.2798398Z             }
2026-06-21T05:16:14.2798493Z           ]
2026-06-21T05:16:14.2798595Z         },
2026-06-21T05:16:14.2798698Z         "int": {
2026-06-21T05:16:14.2798818Z           "complete": true,
2026-06-21T05:16:14.2798924Z           "evidence": [
2026-06-21T05:16:14.2799121Z             {
2026-06-21T05:16:14.2799279Z               "path": "crates/spt/tests/livehost_bootrace_e2e.rs",
2026-06-21T05:16:14.2799396Z               "line": 353
2026-06-21T05:16:14.2799505Z             },
2026-06-21T05:16:14.2799607Z             {
2026-06-21T05:16:14.2799772Z               "path": "crates/spt/tests/livehost_psyche_fail_e2e.rs",
2026-06-21T05:16:14.2799897Z               "line": 23
2026-06-21T05:16:14.2800002Z             }
2026-06-21T05:16:14.2800110Z           ]
2026-06-21T05:16:14.2800207Z         },
2026-06-21T05:16:14.2800312Z         "unit": {
2026-06-21T05:16:14.2800420Z           "complete": true,
2026-06-21T05:16:14.2800531Z           "evidence": [
2026-06-21T05:16:14.2800631Z             {
2026-06-21T05:16:14.2800774Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T05:16:14.2800889Z               "line": 743
2026-06-21T05:16:14.2800983Z             },
2026-06-21T05:16:14.2801089Z             {
2026-06-21T05:16:14.2801209Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2801317Z               "line": 7863
2026-06-21T05:16:14.2801418Z             }
2026-06-21T05:16:14.2801528Z           ]
2026-06-21T05:16:14.2801631Z         }
2026-06-21T05:16:14.2801731Z       }
2026-06-21T05:16:14.2801836Z     },
2026-06-21T05:16:14.2801930Z     {
2026-06-21T05:16:14.2802077Z       "id": "REQ-HAZARD-LIVEHOST-NONRESIDENT",
2026-06-21T05:16:14.2805358Z       "title": "A daemon-hosted Psyche that spawns then EXITS IMMEDIATELY is a host failure, surfaced like a spawn failure (closes the v0.8.1 residual masking): the REQ-HAZARD-LIVEHOST-BOOT-RACE signal stamps `psyche_host_error` only when `spawn_psyche` returns Err, NOT when the detached spawn() returns Ok but the child dies within moments (e.g. a bad-argv child exiting 2 — the F-009 case). That leaves the residual 'online + no Psyche + no cause' gap: the nested `{id}-psyche` info.json is written status=online with a real-but-DEAD pid and the PARENT perch carries NO psyche_host_error (perri's F-010: tasklist showed 0 host procs across the window while info.json read online). The host MUST confirm RESIDENCY — a hosted child not alive (or whose `{id}-psyche` perch never re-registers / has a dead pid) within N seconds of spawn is treated as a host failure: stamp the parent perch `psyche_host_error{reason:\"host not resident within <n>s (psyche perch missing/dead pid)\"}` (and do not leave a phantom online nested perch). Closes the last masking gap the v0.8.1 fix left open. perri's F-010 (v0.8.1 dogfood). Sibling of REQ-HAZARD-LIVEHOST-BOOT-RACE.",
2026-06-21T05:16:14.2805705Z       "requiredStages": [
2026-06-21T05:16:14.2805809Z         "impl",
2026-06-21T05:16:14.2805915Z         "unit",
2026-06-21T05:16:14.2806020Z         "int"
2026-06-21T05:16:14.2806129Z       ],
2026-06-21T05:16:14.2806235Z       "stages": {
2026-06-21T05:16:14.2806344Z         "doc": {
2026-06-21T05:16:14.2806462Z           "complete": false,
2026-06-21T05:16:14.2806574Z           "evidence": []
2026-06-21T05:16:14.2806678Z         },
2026-06-21T05:16:14.2806772Z         "impl": {
2026-06-21T05:16:14.2806886Z           "complete": true,
2026-06-21T05:16:14.2806990Z           "evidence": [
2026-06-21T05:16:14.2807089Z             {
2026-06-21T05:16:14.2807242Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2807347Z               "line": 64
2026-06-21T05:16:14.2807446Z             },
2026-06-21T05:16:14.2807552Z             {
2026-06-21T05:16:14.2807699Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2807803Z               "line": 78
2026-06-21T05:16:14.2807910Z             },
2026-06-21T05:16:14.2808014Z             {
2026-06-21T05:16:14.2808153Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2808262Z               "line": 170
2026-06-21T05:16:14.2808367Z             },
2026-06-21T05:16:14.2808467Z             {
2026-06-21T05:16:14.2808610Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2808715Z               "line": 185
2026-06-21T05:16:14.2808821Z             },
2026-06-21T05:16:14.2808920Z             {
2026-06-21T05:16:14.2809136Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2809235Z               "line": 195
2026-06-21T05:16:14.2809340Z             },
2026-06-21T05:16:14.2809441Z             {
2026-06-21T05:16:14.2809596Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2809700Z               "line": 205
2026-06-21T05:16:14.2809806Z             },
2026-06-21T05:16:14.2809913Z             {
2026-06-21T05:16:14.2810056Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2810162Z               "line": 294
2026-06-21T05:16:14.2810252Z             },
2026-06-21T05:16:14.2810351Z             {
2026-06-21T05:16:14.2810500Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2810604Z               "line": 308
2026-06-21T05:16:14.2810710Z             },
2026-06-21T05:16:14.2810810Z             {
2026-06-21T05:16:14.2810952Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2811053Z               "line": 377
2026-06-21T05:16:14.2811162Z             },
2026-06-21T05:16:14.2811267Z             {
2026-06-21T05:16:14.2811402Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2811515Z               "line": 437
2026-06-21T05:16:14.2811611Z             },
2026-06-21T05:16:14.2811717Z             {
2026-06-21T05:16:14.2811858Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2812079Z               "line": 455
2026-06-21T05:16:14.2812187Z             }
2026-06-21T05:16:14.2812277Z           ]
2026-06-21T05:16:14.2812386Z         },
2026-06-21T05:16:14.2812485Z         "int": {
2026-06-21T05:16:14.2812599Z           "complete": true,
2026-06-21T05:16:14.2812709Z           "evidence": [
2026-06-21T05:16:14.2812809Z             {
2026-06-21T05:16:14.2812976Z               "path": "crates/spt/tests/livehost_bootrace_e2e.rs",
2026-06-21T05:16:14.2813077Z               "line": 45
2026-06-21T05:16:14.2813181Z             },
2026-06-21T05:16:14.2813281Z             {
2026-06-21T05:16:14.2813542Z               "path": "crates/spt/tests/livehost_bootrace_e2e.rs",
2026-06-21T05:16:14.2813644Z               "line": 354
2026-06-21T05:16:14.2813748Z             },
2026-06-21T05:16:14.2813853Z             {
2026-06-21T05:16:14.2814020Z               "path": "crates/spt/tests/livehost_nonresident_e2e.rs",
2026-06-21T05:16:14.2814139Z               "line": 31
2026-06-21T05:16:14.2814240Z             }
2026-06-21T05:16:14.2814345Z           ]
2026-06-21T05:16:14.2814450Z         },
2026-06-21T05:16:14.2814555Z         "unit": {
2026-06-21T05:16:14.2814669Z           "complete": true,
2026-06-21T05:16:14.2814779Z           "evidence": [
2026-06-21T05:16:14.2814880Z             {
2026-06-21T05:16:14.2815026Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.2815139Z               "line": 727
2026-06-21T05:16:14.2815230Z             }
2026-06-21T05:16:14.2815332Z           ]
2026-06-21T05:16:14.2815435Z         }
2026-06-21T05:16:14.2815536Z       }
2026-06-21T05:16:14.2815640Z     },
2026-06-21T05:16:14.2815731Z     {
2026-06-21T05:16:14.2815860Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-21T05:16:14.2816107Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-21T05:16:14.2816223Z       "requiredStages": [
2026-06-21T05:16:14.2816332Z         "impl",
2026-06-21T05:16:14.2816446Z         "unit"
2026-06-21T05:16:14.2816547Z       ],
2026-06-21T05:16:14.2816646Z       "stages": {
2026-06-21T05:16:14.2816751Z         "doc": {
2026-06-21T05:16:14.2816857Z           "complete": false,
2026-06-21T05:16:14.2816965Z           "evidence": []
2026-06-21T05:16:14.2817071Z         },
2026-06-21T05:16:14.2817172Z         "impl": {
2026-06-21T05:16:14.2817289Z           "complete": true,
2026-06-21T05:16:14.2817384Z           "evidence": [
2026-06-21T05:16:14.2817494Z             {
2026-06-21T05:16:14.2817630Z               "path": "crates/spt/src/api/auth.rs",
2026-06-21T05:16:14.2817729Z               "line": 14
2026-06-21T05:16:14.2817845Z             },
2026-06-21T05:16:14.2817945Z             {
2026-06-21T05:16:14.2818073Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T05:16:14.2818179Z               "line": 566
2026-06-21T05:16:14.2818283Z             }
2026-06-21T05:16:14.2818388Z           ]
2026-06-21T05:16:14.2818489Z         },
2026-06-21T05:16:14.2818602Z         "int": {
2026-06-21T05:16:14.2818703Z           "complete": false,
2026-06-21T05:16:14.2818818Z           "evidence": []
2026-06-21T05:16:14.2818917Z         },
2026-06-21T05:16:14.2819119Z         "unit": {
2026-06-21T05:16:14.2819223Z           "complete": true,
2026-06-21T05:16:14.2819323Z           "evidence": [
2026-06-21T05:16:14.2819434Z             {
2026-06-21T05:16:14.2819566Z               "path": "crates/spt/src/api/auth.rs",
2026-06-21T05:16:14.2819662Z               "line": 130
2026-06-21T05:16:14.2819763Z             },
2026-06-21T05:16:14.2819866Z             {
2026-06-21T05:16:14.2819996Z               "path": "crates/spt/src/api/auth.rs",
2026-06-21T05:16:14.2820101Z               "line": 138
2026-06-21T05:16:14.2820199Z             },
2026-06-21T05:16:14.2820304Z             {
2026-06-21T05:16:14.2820441Z               "path": "crates/spt/src/api/auth.rs",
2026-06-21T05:16:14.2820545Z               "line": 146
2026-06-21T05:16:14.2820654Z             },
2026-06-21T05:16:14.2820864Z             {
2026-06-21T05:16:14.2820989Z               "path": "crates/spt/src/api/auth.rs",
2026-06-21T05:16:14.2821094Z               "line": 154
2026-06-21T05:16:14.2821198Z             },
2026-06-21T05:16:14.2821304Z             {
2026-06-21T05:16:14.2821428Z               "path": "crates/spt/src/api/auth.rs",
2026-06-21T05:16:14.2821527Z               "line": 162
2026-06-21T05:16:14.2821633Z             },
2026-06-21T05:16:14.2821732Z             {
2026-06-21T05:16:14.2821861Z               "path": "crates/spt/src/api/auth.rs",
2026-06-21T05:16:14.2821967Z               "line": 170
2026-06-21T05:16:14.2822066Z             }
2026-06-21T05:16:14.2822166Z           ]
2026-06-21T05:16:14.2822394Z         }
2026-06-21T05:16:14.2822495Z       }
2026-06-21T05:16:14.2822597Z     },
2026-06-21T05:16:14.2822700Z     {
2026-06-21T05:16:14.2822827Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-21T05:16:14.2823736Z       "title": "Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)",
2026-06-21T05:16:14.2823856Z       "requiredStages": [
2026-06-21T05:16:14.2823966Z         "impl",
2026-06-21T05:16:14.2824070Z         "unit"
2026-06-21T05:16:14.2824166Z       ],
2026-06-21T05:16:14.2824275Z       "stages": {
2026-06-21T05:16:14.2824375Z         "doc": {
2026-06-21T05:16:14.2824485Z           "complete": false,
2026-06-21T05:16:14.2824604Z           "evidence": []
2026-06-21T05:16:14.2824704Z         },
2026-06-21T05:16:14.2824805Z         "impl": {
2026-06-21T05:16:14.2824933Z           "complete": true,
2026-06-21T05:16:14.2825043Z           "evidence": [
2026-06-21T05:16:14.2825144Z             {
2026-06-21T05:16:14.2825319Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-21T05:16:14.2825430Z               "line": 34
2026-06-21T05:16:14.2825530Z             }
2026-06-21T05:16:14.2825647Z           ]
2026-06-21T05:16:14.2825742Z         },
2026-06-21T05:16:14.2825839Z         "int": {
2026-06-21T05:16:14.2825953Z           "complete": false,
2026-06-21T05:16:14.2826066Z           "evidence": []
2026-06-21T05:16:14.2826173Z         },
2026-06-21T05:16:14.2826272Z         "unit": {
2026-06-21T05:16:14.2826377Z           "complete": true,
2026-06-21T05:16:14.2826478Z           "evidence": [
2026-06-21T05:16:14.2826582Z             {
2026-06-21T05:16:14.2826735Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-21T05:16:14.2826845Z               "line": 188
2026-06-21T05:16:14.2826949Z             },
2026-06-21T05:16:14.2827050Z             {
2026-06-21T05:16:14.2827221Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-21T05:16:14.2827326Z               "line": 200
2026-06-21T05:16:14.2827427Z             },
2026-06-21T05:16:14.2827525Z             {
2026-06-21T05:16:14.2827684Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-21T05:16:14.2827799Z               "line": 211
2026-06-21T05:16:14.2827897Z             },
2026-06-21T05:16:14.2828002Z             {
2026-06-21T05:16:14.2828162Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-21T05:16:14.2828271Z               "line": 253
2026-06-21T05:16:14.2828376Z             },
2026-06-21T05:16:14.2828481Z             {
2026-06-21T05:16:14.2828643Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-21T05:16:14.2828748Z               "line": 277
2026-06-21T05:16:14.2828852Z             },
2026-06-21T05:16:14.2829035Z             {
2026-06-21T05:16:14.2829200Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-21T05:16:14.2829316Z               "line": 300
2026-06-21T05:16:14.2829420Z             },
2026-06-21T05:16:14.2829525Z             {
2026-06-21T05:16:14.2829679Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-21T05:16:14.2829878Z               "line": 316
2026-06-21T05:16:14.2829979Z             }
2026-06-21T05:16:14.2830073Z           ]
2026-06-21T05:16:14.2830169Z         }
2026-06-21T05:16:14.2830265Z       }
2026-06-21T05:16:14.2830369Z     },
2026-06-21T05:16:14.2830464Z     {
2026-06-21T05:16:14.2830595Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-21T05:16:14.2831147Z       "title": "Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)",
2026-06-21T05:16:14.2831268Z       "requiredStages": [
2026-06-21T05:16:14.2831372Z         "impl",
2026-06-21T05:16:14.2831569Z         "unit"
2026-06-21T05:16:14.2831669Z       ],
2026-06-21T05:16:14.2831767Z       "stages": {
2026-06-21T05:16:14.2831869Z         "doc": {
2026-06-21T05:16:14.2831973Z           "complete": false,
2026-06-21T05:16:14.2832087Z           "evidence": []
2026-06-21T05:16:14.2832183Z         },
2026-06-21T05:16:14.2832282Z         "impl": {
2026-06-21T05:16:14.2832397Z           "complete": true,
2026-06-21T05:16:14.2832493Z           "evidence": [
2026-06-21T05:16:14.2832597Z             {
2026-06-21T05:16:14.2832741Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T05:16:14.2832847Z               "line": 29
2026-06-21T05:16:14.2832950Z             },
2026-06-21T05:16:14.2833051Z             {
2026-06-21T05:16:14.2833185Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T05:16:14.2833293Z               "line": 174
2026-06-21T05:16:14.2833397Z             },
2026-06-21T05:16:14.2833493Z             {
2026-06-21T05:16:14.2833638Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T05:16:14.2833753Z               "line": 194
2026-06-21T05:16:14.2833854Z             },
2026-06-21T05:16:14.2833958Z             {
2026-06-21T05:16:14.2834096Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T05:16:14.2834201Z               "line": 222
2026-06-21T05:16:14.2834310Z             }
2026-06-21T05:16:14.2834416Z           ]
2026-06-21T05:16:14.2834516Z         },
2026-06-21T05:16:14.2834606Z         "int": {
2026-06-21T05:16:14.2834721Z           "complete": false,
2026-06-21T05:16:14.2834831Z           "evidence": []
2026-06-21T05:16:14.2834930Z         },
2026-06-21T05:16:14.2835040Z         "unit": {
2026-06-21T05:16:14.2835150Z           "complete": true,
2026-06-21T05:16:14.2835264Z           "evidence": [
2026-06-21T05:16:14.2835365Z             {
2026-06-21T05:16:14.2835498Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T05:16:14.2835608Z               "line": 329
2026-06-21T05:16:14.2835714Z             },
2026-06-21T05:16:14.2835817Z             {
2026-06-21T05:16:14.2835951Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T05:16:14.2836066Z               "line": 344
2026-06-21T05:16:14.2836160Z             },
2026-06-21T05:16:14.2836264Z             {
2026-06-21T05:16:14.2836399Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T05:16:14.2836522Z               "line": 417
2026-06-21T05:16:14.2836622Z             },
2026-06-21T05:16:14.2836728Z             {
2026-06-21T05:16:14.2836865Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T05:16:14.2836971Z               "line": 433
2026-06-21T05:16:14.2837076Z             },
2026-06-21T05:16:14.2837170Z             {
2026-06-21T05:16:14.2837315Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T05:16:14.2837419Z               "line": 492
2026-06-21T05:16:14.2837518Z             },
2026-06-21T05:16:14.2837625Z             {
2026-06-21T05:16:14.2837757Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T05:16:14.2837861Z               "line": 506
2026-06-21T05:16:14.2837963Z             },
2026-06-21T05:16:14.2838067Z             {
2026-06-21T05:16:14.2838210Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T05:16:14.2838311Z               "line": 517
2026-06-21T05:16:14.2838415Z             },
2026-06-21T05:16:14.2838595Z             {
2026-06-21T05:16:14.2838732Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T05:16:14.2838841Z               "line": 528
2026-06-21T05:16:14.2839009Z             }
2026-06-21T05:16:14.2839112Z           ]
2026-06-21T05:16:14.2839213Z         }
2026-06-21T05:16:14.2839318Z       }
2026-06-21T05:16:14.2839422Z     },
2026-06-21T05:16:14.2839518Z     {
2026-06-21T05:16:14.2839651Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-21T05:16:14.2840339Z       "title": "Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)",
2026-06-21T05:16:14.2840554Z       "requiredStages": [
2026-06-21T05:16:14.2840662Z         "impl",
2026-06-21T05:16:14.2840768Z         "unit"
2026-06-21T05:16:14.2840864Z       ],
2026-06-21T05:16:14.2840976Z       "stages": {
2026-06-21T05:16:14.2841063Z         "doc": {
2026-06-21T05:16:14.2841193Z           "complete": false,
2026-06-21T05:16:14.2841305Z           "evidence": []
2026-06-21T05:16:14.2841409Z         },
2026-06-21T05:16:14.2841515Z         "impl": {
2026-06-21T05:16:14.2841622Z           "complete": true,
2026-06-21T05:16:14.2841741Z           "evidence": [
2026-06-21T05:16:14.2841838Z             {
2026-06-21T05:16:14.2841998Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T05:16:14.2842104Z               "line": 27
2026-06-21T05:16:14.2842204Z             },
2026-06-21T05:16:14.2842313Z             {
2026-06-21T05:16:14.2842462Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T05:16:14.2842586Z               "line": 110
2026-06-21T05:16:14.2842676Z             },
2026-06-21T05:16:14.2842772Z             {
2026-06-21T05:16:14.2842928Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T05:16:14.2843034Z               "line": 153
2026-06-21T05:16:14.2843139Z             },
2026-06-21T05:16:14.2843253Z             {
2026-06-21T05:16:14.2843402Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T05:16:14.2843510Z               "line": 182
2026-06-21T05:16:14.2843615Z             },
2026-06-21T05:16:14.2843717Z             {
2026-06-21T05:16:14.2843886Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-21T05:16:14.2843996Z               "line": 31
2026-06-21T05:16:14.2844100Z             },
2026-06-21T05:16:14.2844198Z             {
2026-06-21T05:16:14.2844366Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-21T05:16:14.2844471Z               "line": 113
2026-06-21T05:16:14.2844584Z             },
2026-06-21T05:16:14.2844681Z             {
2026-06-21T05:16:14.2844846Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-21T05:16:14.2844952Z               "line": 138
2026-06-21T05:16:14.2845062Z             }
2026-06-21T05:16:14.2845166Z           ]
2026-06-21T05:16:14.2845267Z         },
2026-06-21T05:16:14.2845381Z         "int": {
2026-06-21T05:16:14.2845486Z           "complete": false,
2026-06-21T05:16:14.2845596Z           "evidence": []
2026-06-21T05:16:14.2845691Z         },
2026-06-21T05:16:14.2845796Z         "unit": {
2026-06-21T05:16:14.2845916Z           "complete": true,
2026-06-21T05:16:14.2846025Z           "evidence": [
2026-06-21T05:16:14.2846134Z             {
2026-06-21T05:16:14.2846284Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T05:16:14.2846386Z               "line": 261
2026-06-21T05:16:14.2846487Z             },
2026-06-21T05:16:14.2846589Z             {
2026-06-21T05:16:14.2846758Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T05:16:14.2846863Z               "line": 276
2026-06-21T05:16:14.2846973Z             },
2026-06-21T05:16:14.2847068Z             {
2026-06-21T05:16:14.2847216Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T05:16:14.2847326Z               "line": 293
2026-06-21T05:16:14.2847536Z             },
2026-06-21T05:16:14.2847641Z             {
2026-06-21T05:16:14.2847782Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T05:16:14.2847898Z               "line": 310
2026-06-21T05:16:14.2847998Z             },
2026-06-21T05:16:14.2848102Z             {
2026-06-21T05:16:14.2848251Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T05:16:14.2848365Z               "line": 327
2026-06-21T05:16:14.2848470Z             },
2026-06-21T05:16:14.2848570Z             {
2026-06-21T05:16:14.2848713Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T05:16:14.2848819Z               "line": 366
2026-06-21T05:16:14.2849084Z             },
2026-06-21T05:16:14.2849188Z             {
2026-06-21T05:16:14.2849343Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-21T05:16:14.2849463Z               "line": 179
2026-06-21T05:16:14.2849564Z             },
2026-06-21T05:16:14.2849663Z             {
2026-06-21T05:16:14.2849836Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-21T05:16:14.2849935Z               "line": 194
2026-06-21T05:16:14.2850044Z             },
2026-06-21T05:16:14.2850150Z             {
2026-06-21T05:16:14.2850311Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-21T05:16:14.2850408Z               "line": 204
2026-06-21T05:16:14.2850513Z             },
2026-06-21T05:16:14.2850612Z             {
2026-06-21T05:16:14.2850775Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-21T05:16:14.2850884Z               "line": 259
2026-06-21T05:16:14.2850974Z             },
2026-06-21T05:16:14.2851085Z             {
2026-06-21T05:16:14.2851247Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-21T05:16:14.2851352Z               "line": 269
2026-06-21T05:16:14.2851457Z             },
2026-06-21T05:16:14.2851556Z             {
2026-06-21T05:16:14.2851719Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-21T05:16:14.2851833Z               "line": 283
2026-06-21T05:16:14.2851927Z             }
2026-06-21T05:16:14.2852023Z           ]
2026-06-21T05:16:14.2852126Z         }
2026-06-21T05:16:14.2852215Z       }
2026-06-21T05:16:14.2852326Z     },
2026-06-21T05:16:14.2852426Z     {
2026-06-21T05:16:14.2852554Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-21T05:16:14.2852764Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-21T05:16:14.2852883Z       "requiredStages": [],
2026-06-21T05:16:14.2852989Z       "stages": {
2026-06-21T05:16:14.2853098Z         "doc": {
2026-06-21T05:16:14.2853221Z           "complete": false,
2026-06-21T05:16:14.2853327Z           "evidence": []
2026-06-21T05:16:14.2853431Z         },
2026-06-21T05:16:14.2853541Z         "impl": {
2026-06-21T05:16:14.2853647Z           "complete": false,
2026-06-21T05:16:14.2853774Z           "evidence": []
2026-06-21T05:16:14.2853875Z         },
2026-06-21T05:16:14.2853991Z         "int": {
2026-06-21T05:16:14.2854103Z           "complete": false,
2026-06-21T05:16:14.2854214Z           "evidence": []
2026-06-21T05:16:14.2854320Z         },
2026-06-21T05:16:14.2854423Z         "unit": {
2026-06-21T05:16:14.2854536Z           "complete": false,
2026-06-21T05:16:14.2854642Z           "evidence": []
2026-06-21T05:16:14.2854754Z         }
2026-06-21T05:16:14.2854853Z       }
2026-06-21T05:16:14.2854940Z     },
2026-06-21T05:16:14.2855045Z     {
2026-06-21T05:16:14.2855183Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-21T05:16:14.2856036Z       "title": "Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)",
2026-06-21T05:16:14.2856161Z       "requiredStages": [
2026-06-21T05:16:14.2856266Z         "impl",
2026-06-21T05:16:14.2856370Z         "unit"
2026-06-21T05:16:14.2856604Z       ],
2026-06-21T05:16:14.2856713Z       "stages": {
2026-06-21T05:16:14.2856805Z         "doc": {
2026-06-21T05:16:14.2856919Z           "complete": false,
2026-06-21T05:16:14.2857038Z           "evidence": []
2026-06-21T05:16:14.2857134Z         },
2026-06-21T05:16:14.2857234Z         "impl": {
2026-06-21T05:16:14.2857342Z           "complete": true,
2026-06-21T05:16:14.2857456Z           "evidence": [
2026-06-21T05:16:14.2857558Z             {
2026-06-21T05:16:14.2857708Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-21T05:16:14.2857815Z               "line": 26
2026-06-21T05:16:14.2857919Z             },
2026-06-21T05:16:14.2858134Z             {
2026-06-21T05:16:14.2858276Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-21T05:16:14.2858382Z               "line": 95
2026-06-21T05:16:14.2858486Z             },
2026-06-21T05:16:14.2858591Z             {
2026-06-21T05:16:14.2858735Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-21T05:16:14.2858844Z               "line": 166
2026-06-21T05:16:14.2859040Z             },
2026-06-21T05:16:14.2859130Z             {
2026-06-21T05:16:14.2859287Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-21T05:16:14.2859413Z               "line": 19
2026-06-21T05:16:14.2859516Z             },
2026-06-21T05:16:14.2859625Z             {
2026-06-21T05:16:14.2859763Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-21T05:16:14.2859866Z               "line": 50
2026-06-21T05:16:14.2859961Z             },
2026-06-21T05:16:14.2860066Z             {
2026-06-21T05:16:14.2860209Z               "path": "crates/spt-live/src/turn.rs",
2026-06-21T05:16:14.2860314Z               "line": 18
2026-06-21T05:16:14.2860415Z             },
2026-06-21T05:16:14.2860514Z             {
2026-06-21T05:16:14.2860653Z               "path": "crates/spt-live/src/turn.rs",
2026-06-21T05:16:14.2860753Z               "line": 71
2026-06-21T05:16:14.2860862Z             },
2026-06-21T05:16:14.2860968Z             {
2026-06-21T05:16:14.2861096Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T05:16:14.2861201Z               "line": 87
2026-06-21T05:16:14.2861297Z             }
2026-06-21T05:16:14.2861396Z           ]
2026-06-21T05:16:14.2861497Z         },
2026-06-21T05:16:14.2861602Z         "int": {
2026-06-21T05:16:14.2861721Z           "complete": false,
2026-06-21T05:16:14.2861830Z           "evidence": []
2026-06-21T05:16:14.2861922Z         },
2026-06-21T05:16:14.2862031Z         "unit": {
2026-06-21T05:16:14.2862145Z           "complete": true,
2026-06-21T05:16:14.2862256Z           "evidence": [
2026-06-21T05:16:14.2862360Z             {
2026-06-21T05:16:14.2862511Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-21T05:16:14.2862625Z               "line": 289
2026-06-21T05:16:14.2862728Z             },
2026-06-21T05:16:14.2862823Z             {
2026-06-21T05:16:14.2862972Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-21T05:16:14.2863077Z               "line": 314
2026-06-21T05:16:14.2863190Z             },
2026-06-21T05:16:14.2863297Z             {
2026-06-21T05:16:14.2863438Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-21T05:16:14.2863549Z               "line": 350
2026-06-21T05:16:14.2863649Z             },
2026-06-21T05:16:14.2863748Z             {
2026-06-21T05:16:14.2863883Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-21T05:16:14.2863996Z               "line": 418
2026-06-21T05:16:14.2864101Z             },
2026-06-21T05:16:14.2864202Z             {
2026-06-21T05:16:14.2864339Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-21T05:16:14.2864440Z               "line": 429
2026-06-21T05:16:14.2864551Z             },
2026-06-21T05:16:14.2864654Z             {
2026-06-21T05:16:14.2864799Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-21T05:16:14.2864904Z               "line": 460
2026-06-21T05:16:14.2865001Z             },
2026-06-21T05:16:14.2865111Z             {
2026-06-21T05:16:14.2865356Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-21T05:16:14.2865467Z               "line": 471
2026-06-21T05:16:14.2865568Z             },
2026-06-21T05:16:14.2865666Z             {
2026-06-21T05:16:14.2865811Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-21T05:16:14.2865916Z               "line": 77
2026-06-21T05:16:14.2866024Z             },
2026-06-21T05:16:14.2866121Z             {
2026-06-21T05:16:14.2866254Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-21T05:16:14.2866363Z               "line": 97
2026-06-21T05:16:14.2866474Z             },
2026-06-21T05:16:14.2866583Z             {
2026-06-21T05:16:14.2866826Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-21T05:16:14.2866939Z               "line": 112
2026-06-21T05:16:14.2867046Z             },
2026-06-21T05:16:14.2867150Z             {
2026-06-21T05:16:14.2867278Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-21T05:16:14.2867394Z               "line": 123
2026-06-21T05:16:14.2867498Z             },
2026-06-21T05:16:14.2867598Z             {
2026-06-21T05:16:14.2867742Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-21T05:16:14.2867850Z               "line": 130
2026-06-21T05:16:14.2867958Z             },
2026-06-21T05:16:14.2868060Z             {
2026-06-21T05:16:14.2868207Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-21T05:16:14.2868322Z               "line": 145
2026-06-21T05:16:14.2868418Z             },
2026-06-21T05:16:14.2868526Z             {
2026-06-21T05:16:14.2868666Z               "path": "crates/spt-live/src/turn.rs",
2026-06-21T05:16:14.2868780Z               "line": 115
2026-06-21T05:16:14.2868889Z             },
2026-06-21T05:16:14.2869038Z             {
2026-06-21T05:16:14.2869175Z               "path": "crates/spt-live/src/turn.rs",
2026-06-21T05:16:14.2869281Z               "line": 130
2026-06-21T05:16:14.2869385Z             },
2026-06-21T05:16:14.2869490Z             {
2026-06-21T05:16:14.2869629Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T05:16:14.2869733Z               "line": 428
2026-06-21T05:16:14.2869833Z             }
2026-06-21T05:16:14.2869939Z           ]
2026-06-21T05:16:14.2870034Z         }
2026-06-21T05:16:14.2870138Z       }
2026-06-21T05:16:14.2870237Z     },
2026-06-21T05:16:14.2870342Z     {
2026-06-21T05:16:14.2870483Z       "id": "REQ-HAZARD-PTY-INPUT-WRITER-WEDGE",
2026-06-21T05:16:14.2876594Z       "title": "Pasting into an `spt rc` session WEDGES the broker — after a paste the operator can no longer type AND can no longer attach to NEW or EXISTING sessions (`brain IPC read deadline`). ROOT (doyle /diagnose, code-grounded): the operator-keystroke path rc -> net-stream Input -> serve_attach (attach.rs:197 brain.send_effect) -> KIND_INPUT -> broker dispatch loop (broker.rs:1091) -> dispatch_input (broker.rs:1459) -> session.write_input(&bytes) runs SYNCHRONOUSLY on the broker request-handling thread. W1b (REQ-HAZARD-EFFECT-JOURNAL-PTY-WEDGE) released the journal lock across the effect (fix 1) + made PtyWrite ephemeral/no-fsync (fix 3) but EXPLICITLY DEFERRED fix (2) — bound/fail-fast the PtyWrite itself. A single keystroke never fills the ConPTY input buffer; a PASTE BURST does -> write_input blocks -> the dispatch thread cannot service the next frame (a re-attach subscribe, a become_controller restore-write, an inject-floor flush) -> wedge. Not a bug-2 regression (the byte path funnels to the same write_input; paste just reliably fills the buffer). FIX (doyle design, V0.13.0-P0-PTY-INPUT-WRITER-DESIGN.md, CONTEXT L33 broker-owns-PTY/minimal + L435 SessionSurface + single-writer pattern): one dedicated per-session INPUT-WRITER THREAD = the SOLE caller of the blocking write_input, fed by a BOUNDED FIFO channel; every caller (dispatch_input, serve_attach->send_effect, inject-floor flush) ENQUEUES + returns immediately, never blocks. A blocked/slow harness blocks ONLY its own writer thread, never the broker dispatch. Backpressure (operator ruling): queue full => DROP excess input + stamp the session INPUT_BACKPRESSURE (visible health signal); the daemon NEVER wedges; a merely-slow harness self-heals as the writer drains. Exactly-once preserved (PtyWrite ephemeral: apply_once effect = the non-blocking enqueue => Applied; ack now means accepted+ordered, benign — rc does not gate on landing); order preserved (single FIFO + single writer); inject-floor (W2 Layer C) choreography moves to the lone writer. Completes the W1b-deferred fix (2), cross-platform (cfg(unix) forkpty park folds in). (v0.13.0)",
2026-06-21T05:16:14.2876884Z       "requiredStages": [
2026-06-21T05:16:14.2876976Z         "impl",
2026-06-21T05:16:14.2877185Z         "unit",
2026-06-21T05:16:14.2877291Z         "int"
2026-06-21T05:16:14.2877396Z       ],
2026-06-21T05:16:14.2877500Z       "stages": {
2026-06-21T05:16:14.2877601Z         "doc": {
2026-06-21T05:16:14.2877710Z           "complete": false,
2026-06-21T05:16:14.2877819Z           "evidence": []
2026-06-21T05:16:14.2877945Z         },
2026-06-21T05:16:14.2878049Z         "impl": {
2026-06-21T05:16:14.2878163Z           "complete": true,
2026-06-21T05:16:14.2878274Z           "evidence": [
2026-06-21T05:16:14.2878368Z             {
2026-06-21T05:16:14.2878510Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2878620Z               "line": 895
2026-06-21T05:16:14.2878725Z             },
2026-06-21T05:16:14.2878829Z             {
2026-06-21T05:16:14.2879054Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T05:16:14.2879163Z               "line": 322
2026-06-21T05:16:14.2879264Z             }
2026-06-21T05:16:14.2879369Z           ]
2026-06-21T05:16:14.2879478Z         },
2026-06-21T05:16:14.2879593Z         "int": {
2026-06-21T05:16:14.2879702Z           "complete": true,
2026-06-21T05:16:14.2879807Z           "evidence": [
2026-06-21T05:16:14.2879918Z             {
2026-06-21T05:16:14.2880083Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
2026-06-21T05:16:14.2880213Z               "line": 1970
2026-06-21T05:16:14.2880316Z             }
2026-06-21T05:16:14.2883013Z           ]
2026-06-21T05:16:14.2883142Z         },
2026-06-21T05:16:14.2883256Z         "unit": {
2026-06-21T05:16:14.2883386Z           "complete": true,
2026-06-21T05:16:14.2883489Z           "evidence": [
2026-06-21T05:16:14.2883593Z             {
2026-06-21T05:16:14.2883746Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2883858Z               "line": 2376
2026-06-21T05:16:14.2883967Z             },
2026-06-21T05:16:14.2884073Z             {
2026-06-21T05:16:14.2884220Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2884340Z               "line": 2440
2026-06-21T05:16:14.2884435Z             },
2026-06-21T05:16:14.2884530Z             {
2026-06-21T05:16:14.2884674Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2884779Z               "line": 2495
2026-06-21T05:16:14.2884888Z             }
2026-06-21T05:16:14.2884994Z           ]
2026-06-21T05:16:14.2885098Z         }
2026-06-21T05:16:14.2885203Z       }
2026-06-21T05:16:14.2885304Z     },
2026-06-21T05:16:14.2885408Z     {
2026-06-21T05:16:14.2885536Z       "id": "REQ-HAZARD-PUMP-IPC-DEADLINE",
2026-06-21T05:16:14.2886435Z       "title": "The single-threaded peer pump's brain-IPC reads are deadline-bounded (PUMP_PEER_IO_TIMEOUT, total-wait per call); a TimedOut read POISONS the client and escalates to a SUPERVISED RESTART, never a per-peer retry — a black-holed peer must never wedge the whole pump",
2026-06-21T05:16:14.2886548Z       "requiredStages": [
2026-06-21T05:16:14.2886650Z         "doc",
2026-06-21T05:16:14.2886768Z         "impl",
2026-06-21T05:16:14.2886872Z         "unit"
2026-06-21T05:16:14.2886979Z       ],
2026-06-21T05:16:14.2887087Z       "stages": {
2026-06-21T05:16:14.2887187Z         "doc": {
2026-06-21T05:16:14.2887307Z           "complete": true,
2026-06-21T05:16:14.2887407Z           "evidence": [
2026-06-21T05:16:14.2887512Z             {
2026-06-21T05:16:14.2887793Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T05:16:14.2887904Z               "line": 374
2026-06-21T05:16:14.2888013Z             }
2026-06-21T05:16:14.2888113Z           ]
2026-06-21T05:16:14.2888214Z         },
2026-06-21T05:16:14.2888317Z         "impl": {
2026-06-21T05:16:14.2888422Z           "complete": true,
2026-06-21T05:16:14.2888529Z           "evidence": [
2026-06-21T05:16:14.2888632Z             {
2026-06-21T05:16:14.2888781Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T05:16:14.2888896Z               "line": 200
2026-06-21T05:16:14.2889079Z             },
2026-06-21T05:16:14.2889185Z             {
2026-06-21T05:16:14.2889461Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T05:16:14.2889566Z               "line": 304
2026-06-21T05:16:14.2889670Z             },
2026-06-21T05:16:14.2889776Z             {
2026-06-21T05:16:14.2889915Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T05:16:14.2890033Z               "line": 562
2026-06-21T05:16:14.2890120Z             },
2026-06-21T05:16:14.2890219Z             {
2026-06-21T05:16:14.2890357Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T05:16:14.2890459Z               "line": 577
2026-06-21T05:16:14.2890567Z             },
2026-06-21T05:16:14.2890667Z             {
2026-06-21T05:16:14.2890807Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T05:16:14.2890915Z               "line": 1224
2026-06-21T05:16:14.2891015Z             },
2026-06-21T05:16:14.2891122Z             {
2026-06-21T05:16:14.2891272Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T05:16:14.2891386Z               "line": 443
2026-06-21T05:16:14.2891490Z             },
2026-06-21T05:16:14.2891589Z             {
2026-06-21T05:16:14.2891723Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T05:16:14.2891828Z               "line": 590
2026-06-21T05:16:14.2891932Z             },
2026-06-21T05:16:14.2892037Z             {
2026-06-21T05:16:14.2892190Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T05:16:14.2892294Z               "line": 731
2026-06-21T05:16:14.2892400Z             }
2026-06-21T05:16:14.2892509Z           ]
2026-06-21T05:16:14.2892604Z         },
2026-06-21T05:16:14.2892706Z         "int": {
2026-06-21T05:16:14.2892824Z           "complete": false,
2026-06-21T05:16:14.2892933Z           "evidence": []
2026-06-21T05:16:14.2893035Z         },
2026-06-21T05:16:14.2893139Z         "unit": {
2026-06-21T05:16:14.2893248Z           "complete": true,
2026-06-21T05:16:14.2893359Z           "evidence": [
2026-06-21T05:16:14.2893463Z             {
2026-06-21T05:16:14.2893617Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T05:16:14.2893725Z               "line": 1155
2026-06-21T05:16:14.2893830Z             },
2026-06-21T05:16:14.2893941Z             {
2026-06-21T05:16:14.2894092Z               "path": "crates/spt-daemon/tests/pumpdeadline.rs",
2026-06-21T05:16:14.2894196Z               "line": 30
2026-06-21T05:16:14.2894306Z             }
2026-06-21T05:16:14.2894413Z           ]
2026-06-21T05:16:14.2894513Z         }
2026-06-21T05:16:14.2894619Z       }
2026-06-21T05:16:14.2894723Z     },
2026-06-21T05:16:14.2894823Z     {
2026-06-21T05:16:14.2894962Z       "id": "REQ-HAZARD-RC-ATTACH-FAILFAST",
2026-06-21T05:16:14.2898310Z       "title": "B1: `spt rc <id>` to a DEAD or non-streaming session fails fast with a clear message, never an INFINITE blank screen. Today rc.rs run_attach (209-231) + pump spawns PUMP_IPC_READER and blocks: the poll times out each slice but the stream never produces output, so the operator sees a permanent blank (operator: fresh wall-f attached, closed tab, then `spt rc wall-f` HUNG — the broker still resolved a session for it). FIX: (a) once B2 lands, gate attach on is_online/status — an offline endpoint yields a clean 'endpoint offline, start it' not an attach; (b) fail-fast — if the attach-open ack / first output does not arrive within a bound, surface a clear message, never an infinite blank; (c) the broker EOFs the attach stream when the session's child is dead, so rc's existing PumpEnd::BrokerGone graceful path (REQ-HAZARD-RC-EOF) catches it. PIN the exact sub-mechanism with a repro test FIRST (dead-session-lingers-in-broker vs reaped-but-rc-waits vs alive-resting-no-wake — the wall-f Windows tab-close: child alive-silent vs dead-not-reaped). (v0.12.0)",
2026-06-21T05:16:14.2898587Z       "requiredStages": [
2026-06-21T05:16:14.2898692Z         "impl",
2026-06-21T05:16:14.2898793Z         "unit",
2026-06-21T05:16:14.2898896Z         "int"
2026-06-21T05:16:14.2899079Z       ],
2026-06-21T05:16:14.2899173Z       "stages": {
2026-06-21T05:16:14.2899427Z         "doc": {
2026-06-21T05:16:14.2899545Z           "complete": false,
2026-06-21T05:16:14.2899649Z           "evidence": []
2026-06-21T05:16:14.2899750Z         },
2026-06-21T05:16:14.2899850Z         "impl": {
2026-06-21T05:16:14.2899969Z           "complete": true,
2026-06-21T05:16:14.2900070Z           "evidence": [
2026-06-21T05:16:14.2900193Z             {
2026-06-21T05:16:14.2900317Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.2900422Z               "line": 718
2026-06-21T05:16:14.2900531Z             },
2026-06-21T05:16:14.2900631Z             {
2026-06-21T05:16:14.2900761Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.2900869Z               "line": 887
2026-06-21T05:16:14.2900976Z             }
2026-06-21T05:16:14.2901080Z           ]
2026-06-21T05:16:14.2901180Z         },
2026-06-21T05:16:14.2901291Z         "int": {
2026-06-21T05:16:14.2901400Z           "complete": true,
2026-06-21T05:16:14.2901509Z           "evidence": [
2026-06-21T05:16:14.2901629Z             {
2026-06-21T05:16:14.2901770Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-21T05:16:14.2901879Z               "line": 420
2026-06-21T05:16:14.2901980Z             }
2026-06-21T05:16:14.2902078Z           ]
2026-06-21T05:16:14.2902182Z         },
2026-06-21T05:16:14.2902292Z         "unit": {
2026-06-21T05:16:14.2902402Z           "complete": true,
2026-06-21T05:16:14.2902511Z           "evidence": [
2026-06-21T05:16:14.2902617Z             {
2026-06-21T05:16:14.2902741Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.2902845Z               "line": 1072
2026-06-21T05:16:14.2902951Z             },
2026-06-21T05:16:14.2903060Z             {
2026-06-21T05:16:14.2903184Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.2903299Z               "line": 1096
2026-06-21T05:16:14.2903403Z             }
2026-06-21T05:16:14.2903508Z           ]
2026-06-21T05:16:14.2903614Z         }
2026-06-21T05:16:14.2903718Z       }
2026-06-21T05:16:14.2903813Z     },
2026-06-21T05:16:14.2903920Z     {
2026-06-21T05:16:14.2904061Z       "id": "REQ-HAZARD-RC-ATTACH-ONLINE-RACE",
2026-06-21T05:16:14.2907846Z       "title": "`spt endpoint run` in an ATTACH/VIEW terminal action attaches BEFORE the freshly-spawned endpoint is online, so the attach races (or outright loses to) the harness bind. ROOT (doyle /diagnose, code-grounded): cmd_endpoint_run (cli.rs) does launch_harness_brokered_in -> (if start: return) -> run_attach with NO await-online between them. launch_harness_brokered_in returns once the harness PROCESS is spawned, but the broker-PTY bind (info status -> STATUS_ONLINE + the live session) lands ASYNC. Both picker attach paths route here with start=false (RunMode::Attach -> cmd_endpoint_run start=false,view=false): Start-now catches the endpoint mid-bringup -> run_attach attempts + loses the handshake race; Resume-from-history catches it still fully OFFLINE -> run_attach's status-gate (REQ-HAZARD-RC-ATTACH-FAILFAST) short-circuits 'offline - nothing to attach' and NEVER attempts. SAME root, two faces (the W4 attach-by-default surfaced both; an online endpoint is unaffected - the picker returns Outcome::Attach, not Run). FIX: in cmd_endpoint_run, when the terminal action is attach/view (NOT start), AWAIT the endpoint online between launch_harness_brokered_in success and run_attach - poll spt_store::info read_info().status to STATUS_ONLINE with a bounded harness-boot deadline (~25s) at a tight interval; on online -> run_attach; on timeout -> ENDPOINT_RUN_ONLINE_TIMEOUT err (do NOT attach a dead bringup). (v0.13.0)",
2026-06-21T05:16:14.2908084Z       "requiredStages": [
2026-06-21T05:16:14.2908189Z         "impl",
2026-06-21T05:16:14.2908288Z         "unit",
2026-06-21T05:16:14.2908385Z         "int"
2026-06-21T05:16:14.2908489Z       ],
2026-06-21T05:16:14.2908584Z       "stages": {
2026-06-21T05:16:14.2908690Z         "doc": {
2026-06-21T05:16:14.2908804Z           "complete": false,
2026-06-21T05:16:14.2908923Z           "evidence": []
2026-06-21T05:16:14.2909200Z         },
2026-06-21T05:16:14.2909291Z         "impl": {
2026-06-21T05:16:14.2909400Z           "complete": true,
2026-06-21T05:16:14.2909500Z           "evidence": [
2026-06-21T05:16:14.2909601Z             {
2026-06-21T05:16:14.2909733Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2909839Z               "line": 1417
2026-06-21T05:16:14.2909940Z             },
2026-06-21T05:16:14.2910034Z             {
2026-06-21T05:16:14.2910166Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2910277Z               "line": 1441
2026-06-21T05:16:14.2910382Z             }
2026-06-21T05:16:14.2910485Z           ]
2026-06-21T05:16:14.2910582Z         },
2026-06-21T05:16:14.2910691Z         "int": {
2026-06-21T05:16:14.2910805Z           "complete": true,
2026-06-21T05:16:14.2910916Z           "evidence": [
2026-06-21T05:16:14.2911011Z             {
2026-06-21T05:16:14.2911163Z               "path": "crates/spt/tests/dummy_harness_e2e.rs",
2026-06-21T05:16:14.2911278Z               "line": 329
2026-06-21T05:16:14.2911383Z             }
2026-06-21T05:16:14.2911487Z           ]
2026-06-21T05:16:14.2911588Z         },
2026-06-21T05:16:14.2911697Z         "unit": {
2026-06-21T05:16:14.2911802Z           "complete": true,
2026-06-21T05:16:14.2911913Z           "evidence": [
2026-06-21T05:16:14.2912020Z             {
2026-06-21T05:16:14.2912150Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.2912260Z               "line": 8169
2026-06-21T05:16:14.2912359Z             }
2026-06-21T05:16:14.2912463Z           ]
2026-06-21T05:16:14.2912554Z         }
2026-06-21T05:16:14.2912653Z       }
2026-06-21T05:16:14.2912747Z     },
2026-06-21T05:16:14.2912843Z     {
2026-06-21T05:16:14.2912967Z       "id": "REQ-HAZARD-RC-EOF",
2026-06-21T05:16:14.2916854Z       "title": "A severed broker stream during a live rc session surfaces GRACEFULLY, never as a raw io error that crashes the PTY. The rc read-loop (rc.rs:352-362) continues only on WouldBlock/TimedOut; ANY other read_event_until error — including UnexpectedEof 'failed to fill whole buffer' — returns Err → RC_FAIL → the PTY 'crashes' from the user's view. Confirmed trigger: a deliberate `spt daemon stop` (broker bounce) severs an active rc (perri stopped the daemon to release owlery watch handles). Same severed-broker-stream EOF class as the v0.9.1 seed fix (seed_fail_message) and the listener-death case — spt-core must classify a broker-gone EOF and (a) surface a CLEAR actionable message ('daemon stopped/restarted — re-run / reconnect'), never the raw buffer error, and ideally (b) AUTO-REATTACH to the same session on the fresh broker (the broker is the daemon-lifetime anchor; it returns on the next `spt api` call). FOLD two side-observations: (1) `spt daemon stop` SILENTLY drops active rc/live sessions — warn ('N active session(s) will drop') or graceful-detach on stop; (2) the daemon holds owlery WATCH HANDLES on perch dirs so a torn-down perch dir stays 'Device busy' until a full daemon stop releases them (perri's rt-* cleanup) — a torn-down perch's handle should release without a daemon stop. doyle Finding C, root-caused. (post-v0.10.0)",
2026-06-21T05:16:14.2917018Z       "requiredStages": [
2026-06-21T05:16:14.2917126Z         "impl",
2026-06-21T05:16:14.2917222Z         "unit"
2026-06-21T05:16:14.2917328Z       ],
2026-06-21T05:16:14.2917560Z       "stages": {
2026-06-21T05:16:14.2917671Z         "doc": {
2026-06-21T05:16:14.2917788Z           "complete": false,
2026-06-21T05:16:14.2917897Z           "evidence": []
2026-06-21T05:16:14.2917993Z         },
2026-06-21T05:16:14.2918095Z         "impl": {
2026-06-21T05:16:14.2918214Z           "complete": true,
2026-06-21T05:16:14.2918320Z           "evidence": [
2026-06-21T05:16:14.2918415Z             {
2026-06-21T05:16:14.2918544Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.2918654Z               "line": 910
2026-06-21T05:16:14.2918758Z             }
2026-06-21T05:16:14.2918858Z           ]
2026-06-21T05:16:14.2919016Z         },
2026-06-21T05:16:14.2919241Z         "int": {
2026-06-21T05:16:14.2919373Z           "complete": false,
2026-06-21T05:16:14.2919483Z           "evidence": []
2026-06-21T05:16:14.2919584Z         },
2026-06-21T05:16:14.2919688Z         "unit": {
2026-06-21T05:16:14.2919802Z           "complete": true,
2026-06-21T05:16:14.2919918Z           "evidence": [
2026-06-21T05:16:14.2920022Z             {
2026-06-21T05:16:14.2920147Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.2920251Z               "line": 1112
2026-06-21T05:16:14.2920355Z             }
2026-06-21T05:16:14.2920457Z           ]
2026-06-21T05:16:14.2920557Z         }
2026-06-21T05:16:14.2920655Z       }
2026-06-21T05:16:14.2920759Z     },
2026-06-21T05:16:14.2920860Z     {
2026-06-21T05:16:14.2921003Z       "id": "REQ-HAZARD-RC-INPUT-KEY-ENCODING",
2026-06-21T05:16:14.2925520Z       "title": "An `spt rc` session forwards the Backspace key as the VT DEL byte (0x7f), so the hosted TUI (Claude Code) deletes ONE character — never a whole word. SYMPTOM (operator dogfooding): Backspace in an rc session always behaves like ctrl+Backspace — deletes the entire last word. ROOT (doyle /diagnose, code-grounded, byte PENDING HITL confirm): rc is a RAW VERBATIM byte pump — spawn_stdin_reader (rc.rs:152) reads std::io::stdin() bytes under crossterm raw mode and forwards them unchanged (parse_stdin_chunk only intercepts the ctrl-b detach prefix); there is NO key-event encoding and NO 0x08↔0x7f normalization ANYWHERE in the tree (grep: zero SetConsoleMode / ENABLE_VIRTUAL_TERMINAL_INPUT). On Windows, crossterm enable_raw_mode does NOT set ENABLE_VIRTUAL_TERMINAL_INPUT, so the LEGACY console delivers ^H (0x08, ctrl+h) for Backspace instead of VT DEL (0x7f); Claude Code maps ^H → backward-kill-word → the observed whole-word delete. CONFIRM-FIRST (build the loop): an env-gated hexdump in spawn_stdin_reader (SPT_RC_DEBUG_KEYS) prints the forwarded byte; operator presses Backspace + ctrl+Backspace in a real rc session. FIX CANDIDATES: (a) enable ENABLE_VIRTUAL_TERMINAL_INPUT on the rc stdin console on Windows so the console emits proper VT (Backspace→0x7f, arrows/Home/End as CSI) — cleanest, fixes the whole key map not just Backspace; (b) narrow normalize bare 0x08→0x7f in the rc input path (riskier — a real ctrl+h is also 0x08). Prefer (a) unless it regresses other keys. Add a KNOWN-HAZARDS.md entry on landing. (v0.13.0)",
2026-06-21T05:16:14.2925707Z       "requiredStages": [
2026-06-21T05:16:14.2925819Z         "impl",
2026-06-21T05:16:14.2925924Z         "unit"
2026-06-21T05:16:14.2926029Z       ],
2026-06-21T05:16:14.2926136Z       "stages": {
2026-06-21T05:16:14.2926242Z         "doc": {
2026-06-21T05:16:14.2926352Z           "complete": false,
2026-06-21T05:16:14.2926470Z           "evidence": []
2026-06-21T05:16:14.2926571Z         },
2026-06-21T05:16:14.2926680Z         "impl": {
2026-06-21T05:16:14.2926789Z           "complete": true,
2026-06-21T05:16:14.2926895Z           "evidence": [
2026-06-21T05:16:14.2927000Z             {
2026-06-21T05:16:14.2927147Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.2927258Z               "line": 264
2026-06-21T05:16:14.2927362Z             }
2026-06-21T05:16:14.2927462Z           ]
2026-06-21T05:16:14.2927568Z         },
2026-06-21T05:16:14.2927672Z         "int": {
2026-06-21T05:16:14.2927782Z           "complete": false,
2026-06-21T05:16:14.2928000Z           "evidence": []
2026-06-21T05:16:14.2928101Z         },
2026-06-21T05:16:14.2928193Z         "unit": {
2026-06-21T05:16:14.2928301Z           "complete": true,
2026-06-21T05:16:14.2928405Z           "evidence": [
2026-06-21T05:16:14.2928505Z             {
2026-06-21T05:16:14.2928637Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.2928750Z               "line": 1094
2026-06-21T05:16:14.2928856Z             },
2026-06-21T05:16:14.2929046Z             {
2026-06-21T05:16:14.2929167Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.2929281Z               "line": 1225
2026-06-21T05:16:14.2929380Z             },
2026-06-21T05:16:14.2929647Z             {
2026-06-21T05:16:14.2929772Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.2929876Z               "line": 1227
2026-06-21T05:16:14.2929976Z             }
2026-06-21T05:16:14.2930082Z           ]
2026-06-21T05:16:14.2930186Z         }
2026-06-21T05:16:14.2930291Z       }
2026-06-21T05:16:14.2930397Z     },
2026-06-21T05:16:14.2930497Z     {
2026-06-21T05:16:14.2930629Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-21T05:16:14.2930911Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-21T05:16:14.2931032Z       "requiredStages": [
2026-06-21T05:16:14.2931140Z         "impl",
2026-06-21T05:16:14.2931239Z         "unit"
2026-06-21T05:16:14.2931349Z       ],
2026-06-21T05:16:14.2931454Z       "stages": {
2026-06-21T05:16:14.2931559Z         "doc": {
2026-06-21T05:16:14.2931673Z           "complete": true,
2026-06-21T05:16:14.2931774Z           "evidence": [
2026-06-21T05:16:14.2931882Z             {
2026-06-21T05:16:14.2932012Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T05:16:14.2932122Z               "line": 139
2026-06-21T05:16:14.2932221Z             }
2026-06-21T05:16:14.2932326Z           ]
2026-06-21T05:16:14.2932431Z         },
2026-06-21T05:16:14.2932536Z         "impl": {
2026-06-21T05:16:14.2932651Z           "complete": true,
2026-06-21T05:16:14.2932760Z           "evidence": [
2026-06-21T05:16:14.2932865Z             {
2026-06-21T05:16:14.2933005Z               "path": "crates/spt-store/src/db.rs",
2026-06-21T05:16:14.2933122Z               "line": 29
2026-06-21T05:16:14.2933222Z             },
2026-06-21T05:16:14.2933320Z             {
2026-06-21T05:16:14.2933461Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T05:16:14.2933569Z               "line": 101
2026-06-21T05:16:14.2933674Z             },
2026-06-21T05:16:14.2933777Z             {
2026-06-21T05:16:14.2933930Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T05:16:14.2934050Z               "line": 30
2026-06-21T05:16:14.2934144Z             },
2026-06-21T05:16:14.2934244Z             {
2026-06-21T05:16:14.2934373Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T05:16:14.2934478Z               "line": 48
2026-06-21T05:16:14.2934574Z             }
2026-06-21T05:16:14.2934674Z           ]
2026-06-21T05:16:14.2934783Z         },
2026-06-21T05:16:14.2934884Z         "int": {
2026-06-21T05:16:14.2934998Z           "complete": false,
2026-06-21T05:16:14.2935103Z           "evidence": []
2026-06-21T05:16:14.2935208Z         },
2026-06-21T05:16:14.2935303Z         "unit": {
2026-06-21T05:16:14.2935418Z           "complete": true,
2026-06-21T05:16:14.2935523Z           "evidence": [
2026-06-21T05:16:14.2935623Z             {
2026-06-21T05:16:14.2935770Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T05:16:14.2935881Z               "line": 162
2026-06-21T05:16:14.2935989Z             }
2026-06-21T05:16:14.2936089Z           ]
2026-06-21T05:16:14.2936201Z         }
2026-06-21T05:16:14.2936314Z       }
2026-06-21T05:16:14.2936413Z     },
2026-06-21T05:16:14.2936518Z     {
2026-06-21T05:16:14.2936654Z       "id": "REQ-HAZARD-REGISTRY-DIR-CREATE",
2026-06-21T05:16:14.2937063Z       "title": "SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)",
2026-06-21T05:16:14.2937279Z       "requiredStages": [
2026-06-21T05:16:14.2937388Z         "doc",
2026-06-21T05:16:14.2937494Z         "impl",
2026-06-21T05:16:14.2937599Z         "unit"
2026-06-21T05:16:14.2937702Z       ],
2026-06-21T05:16:14.2937808Z       "stages": {
2026-06-21T05:16:14.2937907Z         "doc": {
2026-06-21T05:16:14.2938017Z           "complete": true,
2026-06-21T05:16:14.2938128Z           "evidence": [
2026-06-21T05:16:14.2938236Z             {
2026-06-21T05:16:14.2938366Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T05:16:14.2938472Z               "line": 151
2026-06-21T05:16:14.2938575Z             }
2026-06-21T05:16:14.2938758Z           ]
2026-06-21T05:16:14.2938857Z         },
2026-06-21T05:16:14.2939042Z         "impl": {
2026-06-21T05:16:14.2939156Z           "complete": true,
2026-06-21T05:16:14.2939263Z           "evidence": [
2026-06-21T05:16:14.2939387Z             {
2026-06-21T05:16:14.2939536Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T05:16:14.2939659Z               "line": 22
2026-06-21T05:16:14.2939760Z             }
2026-06-21T05:16:14.2939860Z           ]
2026-06-21T05:16:14.2939964Z         },
2026-06-21T05:16:14.2940061Z         "int": {
2026-06-21T05:16:14.2940175Z           "complete": false,
2026-06-21T05:16:14.2940279Z           "evidence": []
2026-06-21T05:16:14.2940385Z         },
2026-06-21T05:16:14.2940494Z         "unit": {
2026-06-21T05:16:14.2940612Z           "complete": true,
2026-06-21T05:16:14.2940719Z           "evidence": [
2026-06-21T05:16:14.2940823Z             {
2026-06-21T05:16:14.2940967Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T05:16:14.2941080Z               "line": 298
2026-06-21T05:16:14.2941189Z             }
2026-06-21T05:16:14.2941291Z           ]
2026-06-21T05:16:14.2941381Z         }
2026-06-21T05:16:14.2941476Z       }
2026-06-21T05:16:14.2941587Z     },
2026-06-21T05:16:14.2941682Z     {
2026-06-21T05:16:14.2941818Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-21T05:16:14.2942291Z       "title": "Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)",
2026-06-21T05:16:14.2942396Z       "requiredStages": [
2026-06-21T05:16:14.2942504Z         "impl",
2026-06-21T05:16:14.2942611Z         "unit"
2026-06-21T05:16:14.2942715Z       ],
2026-06-21T05:16:14.2942819Z       "stages": {
2026-06-21T05:16:14.2942926Z         "doc": {
2026-06-21T05:16:14.2943044Z           "complete": true,
2026-06-21T05:16:14.2943144Z           "evidence": [
2026-06-21T05:16:14.2943250Z             {
2026-06-21T05:16:14.2943378Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T05:16:14.2943507Z               "line": 145
2026-06-21T05:16:14.2943611Z             }
2026-06-21T05:16:14.2943716Z           ]
2026-06-21T05:16:14.2943821Z         },
2026-06-21T05:16:14.2943931Z         "impl": {
2026-06-21T05:16:14.2944049Z           "complete": true,
2026-06-21T05:16:14.2944163Z           "evidence": [
2026-06-21T05:16:14.2944286Z             {
2026-06-21T05:16:14.2944442Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-21T05:16:14.2944557Z               "line": 160
2026-06-21T05:16:14.2944666Z             },
2026-06-21T05:16:14.2944761Z             {
2026-06-21T05:16:14.2944924Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.2945029Z               "line": 200
2026-06-21T05:16:14.2945134Z             },
2026-06-21T05:16:14.2945239Z             {
2026-06-21T05:16:14.2945390Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.2945497Z               "line": 298
2026-06-21T05:16:14.2945606Z             },
2026-06-21T05:16:14.2945715Z             {
2026-06-21T05:16:14.2945863Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-21T05:16:14.2945973Z               "line": 20
2026-06-21T05:16:14.2946078Z             }
2026-06-21T05:16:14.2946178Z           ]
2026-06-21T05:16:14.2946283Z         },
2026-06-21T05:16:14.2946493Z         "int": {
2026-06-21T05:16:14.2946597Z           "complete": false,
2026-06-21T05:16:14.2946708Z           "evidence": []
2026-06-21T05:16:14.2946808Z         },
2026-06-21T05:16:14.2946921Z         "unit": {
2026-06-21T05:16:14.2947035Z           "complete": true,
2026-06-21T05:16:14.2947139Z           "evidence": [
2026-06-21T05:16:14.2947243Z             {
2026-06-21T05:16:14.2947396Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.2947501Z               "line": 937
2026-06-21T05:16:14.2947609Z             },
2026-06-21T05:16:14.2947706Z             {
2026-06-21T05:16:14.2947858Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-21T05:16:14.2948059Z               "line": 88
2026-06-21T05:16:14.2948164Z             },
2026-06-21T05:16:14.2948267Z             {
2026-06-21T05:16:14.2948412Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.2948521Z               "line": 851
2026-06-21T05:16:14.2948625Z             },
2026-06-21T05:16:14.2948726Z             {
2026-06-21T05:16:14.2948869Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.2949060Z               "line": 870
2026-06-21T05:16:14.2949159Z             },
2026-06-21T05:16:14.2949265Z             {
2026-06-21T05:16:14.2949413Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-21T05:16:14.2949535Z               "line": 279
2026-06-21T05:16:14.2949640Z             },
2026-06-21T05:16:14.2949744Z             {
2026-06-21T05:16:14.2949885Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-21T05:16:14.2949996Z               "line": 82
2026-06-21T05:16:14.2950101Z             },
2026-06-21T05:16:14.2950205Z             {
2026-06-21T05:16:14.2950344Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-21T05:16:14.2950448Z               "line": 99
2026-06-21T05:16:14.2950553Z             },
2026-06-21T05:16:14.2950663Z             {
2026-06-21T05:16:14.2950805Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-21T05:16:14.2950916Z               "line": 119
2026-06-21T05:16:14.2951020Z             }
2026-06-21T05:16:14.2951125Z           ]
2026-06-21T05:16:14.2951231Z         }
2026-06-21T05:16:14.2951335Z       }
2026-06-21T05:16:14.2951440Z     },
2026-06-21T05:16:14.2951536Z     {
2026-06-21T05:16:14.2951682Z       "id": "REQ-HAZARD-REGISTRY-GHOST-ROWS",
2026-06-21T05:16:14.2953007Z       "title": "A dead node identity's registry rows must decay: only the per-(endpoint,node) epoch lease supersedes rows, so without eviction a vanished node's rows are immortal and poison bare-id resolution with phantom AcrossNodes ambiguity — evict rows whose author node has not been heard (admitted inbound feed) within the eviction window; own rows never decay; a revived node re-inserts from its durable epoch within one pump cadence (4.10)",
2026-06-21T05:16:14.2953137Z       "requiredStages": [
2026-06-21T05:16:14.2953242Z         "doc",
2026-06-21T05:16:14.2953346Z         "impl",
2026-06-21T05:16:14.2953452Z         "unit"
2026-06-21T05:16:14.2953556Z       ],
2026-06-21T05:16:14.2953656Z       "stages": {
2026-06-21T05:16:14.2953757Z         "doc": {
2026-06-21T05:16:14.2953880Z           "complete": true,
2026-06-21T05:16:14.2953985Z           "evidence": [
2026-06-21T05:16:14.2954082Z             {
2026-06-21T05:16:14.2954219Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T05:16:14.2954319Z               "line": 157
2026-06-21T05:16:14.2954425Z             }
2026-06-21T05:16:14.2954529Z           ]
2026-06-21T05:16:14.2954623Z         },
2026-06-21T05:16:14.2954737Z         "impl": {
2026-06-21T05:16:14.2954837Z           "complete": true,
2026-06-21T05:16:14.2954969Z           "evidence": [
2026-06-21T05:16:14.2955069Z             {
2026-06-21T05:16:14.2955236Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-21T05:16:14.2955346Z               "line": 137
2026-06-21T05:16:14.2955451Z             },
2026-06-21T05:16:14.2955560Z             {
2026-06-21T05:16:14.2955809Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.2955918Z               "line": 564
2026-06-21T05:16:14.2956009Z             },
2026-06-21T05:16:14.2956114Z             {
2026-06-21T05:16:14.2956265Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.2956377Z               "line": 571
2026-06-21T05:16:14.2956495Z             },
2026-06-21T05:16:14.2956604Z             {
2026-06-21T05:16:14.2956757Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.2956862Z               "line": 227
2026-06-21T05:16:14.2956973Z             }
2026-06-21T05:16:14.2957081Z           ]
2026-06-21T05:16:14.2957273Z         },
2026-06-21T05:16:14.2957382Z         "int": {
2026-06-21T05:16:14.2957495Z           "complete": false,
2026-06-21T05:16:14.2957609Z           "evidence": []
2026-06-21T05:16:14.2957713Z         },
2026-06-21T05:16:14.2957822Z         "unit": {
2026-06-21T05:16:14.2957936Z           "complete": true,
2026-06-21T05:16:14.2958051Z           "evidence": [
2026-06-21T05:16:14.2958155Z             {
2026-06-21T05:16:14.2958314Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.2958418Z               "line": 1622
2026-06-21T05:16:14.2958522Z             },
2026-06-21T05:16:14.2958628Z             {
2026-06-21T05:16:14.2958770Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.2958885Z               "line": 1680
2026-06-21T05:16:14.2959085Z             },
2026-06-21T05:16:14.2959181Z             {
2026-06-21T05:16:14.2959333Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.2959457Z               "line": 883
2026-06-21T05:16:14.2959563Z             }
2026-06-21T05:16:14.2959667Z           ]
2026-06-21T05:16:14.2959776Z         }
2026-06-21T05:16:14.2959921Z       }
2026-06-21T05:16:14.2960020Z     },
2026-06-21T05:16:14.2960109Z     {
2026-06-21T05:16:14.2960252Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-21T05:16:14.2960474Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-21T05:16:14.2960599Z       "requiredStages": [
2026-06-21T05:16:14.2960698Z         "impl",
2026-06-21T05:16:14.2960808Z         "unit"
2026-06-21T05:16:14.2960909Z       ],
2026-06-21T05:16:14.2961018Z       "stages": {
2026-06-21T05:16:14.2961113Z         "doc": {
2026-06-21T05:16:14.2961224Z           "complete": false,
2026-06-21T05:16:14.2961328Z           "evidence": []
2026-06-21T05:16:14.2961428Z         },
2026-06-21T05:16:14.2961533Z         "impl": {
2026-06-21T05:16:14.2961643Z           "complete": true,
2026-06-21T05:16:14.2961747Z           "evidence": [
2026-06-21T05:16:14.2961853Z             {
2026-06-21T05:16:14.2961986Z               "path": "crates/spt-store/src/proc.rs",
2026-06-21T05:16:14.2962101Z               "line": 15
2026-06-21T05:16:14.2962205Z             },
2026-06-21T05:16:14.2962310Z             {
2026-06-21T05:16:14.2962454Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T05:16:14.2962562Z               "line": 55
2026-06-21T05:16:14.2962668Z             },
2026-06-21T05:16:14.2962774Z             {
2026-06-21T05:16:14.2962914Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T05:16:14.2963024Z               "line": 66
2026-06-21T05:16:14.2963139Z             },
2026-06-21T05:16:14.2963234Z             {
2026-06-21T05:16:14.2963387Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T05:16:14.2963492Z               "line": 115
2026-06-21T05:16:14.2963601Z             },
2026-06-21T05:16:14.2963707Z             {
2026-06-21T05:16:14.2963850Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T05:16:14.2963959Z               "line": 138
2026-06-21T05:16:14.2964055Z             }
2026-06-21T05:16:14.2964164Z           ]
2026-06-21T05:16:14.2964259Z         },
2026-06-21T05:16:14.2964360Z         "int": {
2026-06-21T05:16:14.2964469Z           "complete": false,
2026-06-21T05:16:14.2964579Z           "evidence": []
2026-06-21T05:16:14.2964779Z         },
2026-06-21T05:16:14.2964879Z         "unit": {
2026-06-21T05:16:14.2964990Z           "complete": true,
2026-06-21T05:16:14.2965094Z           "evidence": [
2026-06-21T05:16:14.2965198Z             {
2026-06-21T05:16:14.2965331Z               "path": "crates/spt-store/src/proc.rs",
2026-06-21T05:16:14.2965439Z               "line": 363
2026-06-21T05:16:14.2965538Z             },
2026-06-21T05:16:14.2965644Z             {
2026-06-21T05:16:14.2965786Z               "path": "crates/spt-store/src/proc.rs",
2026-06-21T05:16:14.2965901Z               "line": 369
2026-06-21T05:16:14.2966011Z             },
2026-06-21T05:16:14.2966240Z             {
2026-06-21T05:16:14.2966373Z               "path": "crates/spt-store/src/proc.rs",
2026-06-21T05:16:14.2966492Z               "line": 383
2026-06-21T05:16:14.2966598Z             },
2026-06-21T05:16:14.2966702Z             {
2026-06-21T05:16:14.2966835Z               "path": "crates/spt-store/src/proc.rs",
2026-06-21T05:16:14.2966956Z               "line": 392
2026-06-21T05:16:14.2967064Z             },
2026-06-21T05:16:14.2967164Z             {
2026-06-21T05:16:14.2967312Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T05:16:14.2967408Z               "line": 195
2026-06-21T05:16:14.2967514Z             },
2026-06-21T05:16:14.2967618Z             {
2026-06-21T05:16:14.2967770Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T05:16:14.2967877Z               "line": 208
2026-06-21T05:16:14.2967975Z             },
2026-06-21T05:16:14.2968083Z             {
2026-06-21T05:16:14.2968218Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T05:16:14.2968339Z               "line": 271
2026-06-21T05:16:14.2968443Z             },
2026-06-21T05:16:14.2968544Z             {
2026-06-21T05:16:14.2968687Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T05:16:14.2968792Z               "line": 290
2026-06-21T05:16:14.2968893Z             },
2026-06-21T05:16:14.2969160Z             {
2026-06-21T05:16:14.2969307Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T05:16:14.2969427Z               "line": 319
2026-06-21T05:16:14.2969527Z             }
2026-06-21T05:16:14.2969627Z           ]
2026-06-21T05:16:14.2969726Z         }
2026-06-21T05:16:14.2969832Z       }
2026-06-21T05:16:14.2969931Z     },
2026-06-21T05:16:14.2970031Z     {
2026-06-21T05:16:14.2970166Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-21T05:16:14.2970471Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-21T05:16:14.2970589Z       "requiredStages": [
2026-06-21T05:16:14.2970707Z         "impl",
2026-06-21T05:16:14.2970808Z         "unit",
2026-06-21T05:16:14.2970906Z         "int"
2026-06-21T05:16:14.2971010Z       ],
2026-06-21T05:16:14.2971111Z       "stages": {
2026-06-21T05:16:14.2971221Z         "doc": {
2026-06-21T05:16:14.2971344Z           "complete": false,
2026-06-21T05:16:14.2971445Z           "evidence": []
2026-06-21T05:16:14.2971559Z         },
2026-06-21T05:16:14.2971654Z         "impl": {
2026-06-21T05:16:14.2971774Z           "complete": true,
2026-06-21T05:16:14.2971879Z           "evidence": [
2026-06-21T05:16:14.2971979Z             {
2026-06-21T05:16:14.2972122Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T05:16:14.2972226Z               "line": 474
2026-06-21T05:16:14.2972337Z             },
2026-06-21T05:16:14.2972442Z             {
2026-06-21T05:16:14.2972584Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T05:16:14.2972690Z               "line": 916
2026-06-21T05:16:14.2972794Z             },
2026-06-21T05:16:14.2972899Z             {
2026-06-21T05:16:14.2973029Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T05:16:14.2973141Z               "line": 961
2026-06-21T05:16:14.2973243Z             },
2026-06-21T05:16:14.2973348Z             {
2026-06-21T05:16:14.2973494Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T05:16:14.2973704Z               "line": 986
2026-06-21T05:16:14.2973808Z             },
2026-06-21T05:16:14.2973913Z             {
2026-06-21T05:16:14.2974062Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2974170Z               "line": 1626
2026-06-21T05:16:14.2974277Z             },
2026-06-21T05:16:14.2974381Z             {
2026-06-21T05:16:14.2974514Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2974630Z               "line": 1871
2026-06-21T05:16:14.2974729Z             },
2026-06-21T05:16:14.2974829Z             {
2026-06-21T05:16:14.2974968Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2975168Z               "line": 2002
2026-06-21T05:16:14.2975274Z             },
2026-06-21T05:16:14.2975381Z             {
2026-06-21T05:16:14.2975516Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.2975621Z               "line": 2050
2026-06-21T05:16:14.2975720Z             },
2026-06-21T05:16:14.2975824Z             {
2026-06-21T05:16:14.2975976Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-21T05:16:14.2976080Z               "line": 46
2026-06-21T05:16:14.2976184Z             },
2026-06-21T05:16:14.2976291Z             {
2026-06-21T05:16:14.2976432Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-21T05:16:14.2979420Z               "line": 200
2026-06-21T05:16:14.2979547Z             },
2026-06-21T05:16:14.2979652Z             {
2026-06-21T05:16:14.2979805Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-21T05:16:14.2979919Z               "line": 132
2026-06-21T05:16:14.2980025Z             },
2026-06-21T05:16:14.2980144Z             {
2026-06-21T05:16:14.2980282Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T05:16:14.2980392Z               "line": 137
2026-06-21T05:16:14.2980506Z             },
2026-06-21T05:16:14.2980611Z             {
2026-06-21T05:16:14.2980754Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T05:16:14.2980878Z               "line": 183
2026-06-21T05:16:14.2980979Z             }
2026-06-21T05:16:14.2981083Z           ]
2026-06-21T05:16:14.2981182Z         },
2026-06-21T05:16:14.2981282Z         "int": {
2026-06-21T05:16:14.2981391Z           "complete": true,
2026-06-21T05:16:14.2981495Z           "evidence": [
2026-06-21T05:16:14.2981590Z             {
2026-06-21T05:16:14.2981739Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-21T05:16:14.2981842Z               "line": 27
2026-06-21T05:16:14.2981948Z             },
2026-06-21T05:16:14.2982053Z             {
2026-06-21T05:16:14.2982209Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-21T05:16:14.2982320Z               "line": 148
2026-06-21T05:16:14.2982420Z             },
2026-06-21T05:16:14.2982524Z             {
2026-06-21T05:16:14.2982673Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-21T05:16:14.2982777Z               "line": 200
2026-06-21T05:16:14.2982882Z             }
2026-06-21T05:16:14.2982982Z           ]
2026-06-21T05:16:14.2983092Z         },
2026-06-21T05:16:14.2983217Z         "unit": {
2026-06-21T05:16:14.2983340Z           "complete": true,
2026-06-21T05:16:14.2983449Z           "evidence": [
2026-06-21T05:16:14.2983556Z             {
2026-06-21T05:16:14.2983697Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-21T05:16:14.2983803Z               "line": 366
2026-06-21T05:16:14.2983908Z             },
2026-06-21T05:16:14.2984007Z             {
2026-06-21T05:16:14.2984139Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-21T05:16:14.2984246Z               "line": 398
2026-06-21T05:16:14.2984350Z             },
2026-06-21T05:16:14.2984445Z             {
2026-06-21T05:16:14.2984584Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-21T05:16:14.2984698Z               "line": 419
2026-06-21T05:16:14.2984803Z             },
2026-06-21T05:16:14.2984903Z             {
2026-06-21T05:16:14.2985050Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T05:16:14.2985299Z               "line": 628
2026-06-21T05:16:14.2985403Z             },
2026-06-21T05:16:14.2985505Z             {
2026-06-21T05:16:14.2985647Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-21T05:16:14.2985747Z               "line": 289
2026-06-21T05:16:14.2985843Z             },
2026-06-21T05:16:14.2985946Z             {
2026-06-21T05:16:14.2986091Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-21T05:16:14.2986201Z               "line": 230
2026-06-21T05:16:14.2986304Z             },
2026-06-21T05:16:14.2986399Z             {
2026-06-21T05:16:14.2986546Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T05:16:14.2986745Z               "line": 526
2026-06-21T05:16:14.2986846Z             },
2026-06-21T05:16:14.2986949Z             {
2026-06-21T05:16:14.2987078Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T05:16:14.2987189Z               "line": 556
2026-06-21T05:16:14.2987302Z             }
2026-06-21T05:16:14.2987404Z           ]
2026-06-21T05:16:14.2987498Z         }
2026-06-21T05:16:14.2987602Z       }
2026-06-21T05:16:14.2987709Z     },
2026-06-21T05:16:14.2987808Z     {
2026-06-21T05:16:14.2987956Z       "id": "REQ-HAZARD-ROLLBACK-STATE-COMPAT",
2026-06-21T05:16:14.2989816Z       "title": "A brain must not irreversibly migrate durable state before update ready-promotion: the readiness-gated auto-rollback (ADR-0018 Q7) spawns the N-1 binary against durable state the new brain may have written, so every pre-ready write must stay N-1-readable (schema migrations gated behind ready-promotion, or written N-1-tolerant/additive). Else the first in-place schema migration silently bricks rollback (KNOWN-HAZARDS 6.8). Free now — a 2026-06-09 audit confirmed zero state-migration code exists; unmintable retroactively once a migration ships.",
2026-06-21T05:16:14.2989941Z       "requiredStages": [
2026-06-21T05:16:14.2990046Z         "doc",
2026-06-21T05:16:14.2990155Z         "impl",
2026-06-21T05:16:14.2990271Z         "unit"
2026-06-21T05:16:14.2990370Z       ],
2026-06-21T05:16:14.2990479Z       "stages": {
2026-06-21T05:16:14.2990580Z         "doc": {
2026-06-21T05:16:14.2990694Z           "complete": true,
2026-06-21T05:16:14.2990809Z           "evidence": [
2026-06-21T05:16:14.2990905Z             {
2026-06-21T05:16:14.2991042Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T05:16:14.2991147Z               "line": 314
2026-06-21T05:16:14.2991253Z             }
2026-06-21T05:16:14.2991356Z           ]
2026-06-21T05:16:14.2991453Z         },
2026-06-21T05:16:14.2991554Z         "impl": {
2026-06-21T05:16:14.2991657Z           "complete": true,
2026-06-21T05:16:14.2991823Z           "evidence": [
2026-06-21T05:16:14.2991928Z             {
2026-06-21T05:16:14.2992083Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-21T05:16:14.2992188Z               "line": 33
2026-06-21T05:16:14.2992289Z             },
2026-06-21T05:16:14.2992383Z             {
2026-06-21T05:16:14.2992537Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-21T05:16:14.2992637Z               "line": 39
2026-06-21T05:16:14.2992736Z             }
2026-06-21T05:16:14.2992843Z           ]
2026-06-21T05:16:14.2992947Z         },
2026-06-21T05:16:14.2993037Z         "int": {
2026-06-21T05:16:14.2993157Z           "complete": false,
2026-06-21T05:16:14.2993261Z           "evidence": []
2026-06-21T05:16:14.2993366Z         },
2026-06-21T05:16:14.2993472Z         "unit": {
2026-06-21T05:16:14.2993580Z           "complete": true,
2026-06-21T05:16:14.2993690Z           "evidence": [
2026-06-21T05:16:14.2993787Z             {
2026-06-21T05:16:14.2993943Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-21T05:16:14.2994048Z               "line": 95
2026-06-21T05:16:14.2994154Z             }
2026-06-21T05:16:14.2994248Z           ]
2026-06-21T05:16:14.2994353Z         }
2026-06-21T05:16:14.2994459Z       }
2026-06-21T05:16:14.2994553Z     },
2026-06-21T05:16:14.2994762Z     {
2026-06-21T05:16:14.2994886Z       "id": "REQ-HAZARD-ROSTER-GHOST",
2026-06-21T05:16:14.2997329Z       "title": "A LOCAL subnet roster entry whose backing perch is erased does NOT keep advertising Active (no phantom perch-less endpoint). `api session-end <id> --erase` removes the perch (owlery dir gone) but the subnet roster (identity/registry/<subnet>.json) keeps the endpoint's instance row ACTIVE with no backing perch; `endpoint stop` says 'address unregistered' yet the line persists; no CLI verb forgets a roster entry, and a hand-edit is re-added by the single-writer daemon advertiser. FIX: daemon-side self-heal — the advertiser DROPS/forgets a LOCAL roster entry whose backing perch no longer exists (stops advertising it Active), and/or a `forget`/evict verb; verify whether the epoch lease eventually evicts it (slow-self-heal) vs a real leak and scope accordingly. doyle secondary finding (perri). (post-v0.10.0)",
2026-06-21T05:16:14.2997543Z       "requiredStages": [
2026-06-21T05:16:14.2997658Z         "impl",
2026-06-21T05:16:14.2997763Z         "unit"
2026-06-21T05:16:14.2997867Z       ],
2026-06-21T05:16:14.2997973Z       "stages": {
2026-06-21T05:16:14.2998083Z         "doc": {
2026-06-21T05:16:14.2998196Z           "complete": false,
2026-06-21T05:16:14.2998302Z           "evidence": []
2026-06-21T05:16:14.2998407Z         },
2026-06-21T05:16:14.2998516Z         "impl": {
2026-06-21T05:16:14.2998622Z           "complete": true,
2026-06-21T05:16:14.2998726Z           "evidence": [
2026-06-21T05:16:14.2998835Z             {
2026-06-21T05:16:14.2999069Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.2999184Z               "line": 488
2026-06-21T05:16:14.2999290Z             }
2026-06-21T05:16:14.2999393Z           ]
2026-06-21T05:16:14.2999499Z         },
2026-06-21T05:16:14.2999600Z         "int": {
2026-06-21T05:16:14.2999716Z           "complete": false,
2026-06-21T05:16:14.2999816Z           "evidence": []
2026-06-21T05:16:14.2999917Z         },
2026-06-21T05:16:14.3000024Z         "unit": {
2026-06-21T05:16:14.3000143Z           "complete": true,
2026-06-21T05:16:14.3000253Z           "evidence": [
2026-06-21T05:16:14.3000358Z             {
2026-06-21T05:16:14.3000516Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.3000621Z               "line": 1466
2026-06-21T05:16:14.3000729Z             }
2026-06-21T05:16:14.3000826Z           ]
2026-06-21T05:16:14.3000930Z         }
2026-06-21T05:16:14.3001030Z       }
2026-06-21T05:16:14.3001140Z     },
2026-06-21T05:16:14.3001245Z     {
2026-06-21T05:16:14.3001369Z       "id": "REQ-HAZARD-SELF-ELEVATE",
2026-06-21T05:16:14.3003530Z       "title": "Self-elevation (REQ-ELEVATE-1) re-runs the EXACT original invocation with the binary's ABSOLUTE exe path — never widening privilege scope, never adding/altering args, never via a PATH-resolved bare name, never via a shell-interpolated command string (argv-array only, no `sh -c`); the elevated child drops state back to the user (composes with the 5.7 de-elevation) and NEVER re-elevates (loop-safe: decide_elevation_path returns AlreadyElevated whenever the process is already Elevated, on every OS). The user's UAC/polkit/sudo prompt is the only consent gate — we never bypass it; the print-hint floor prints the absolute-path command too. The unprivileged parent never depends on (pipes/captures) the privileged child's stdout.",
2026-06-21T05:16:14.3003664Z       "requiredStages": [
2026-06-21T05:16:14.3003764Z         "unit"
2026-06-21T05:16:14.3003874Z       ],
2026-06-21T05:16:14.3003973Z       "stages": {
2026-06-21T05:16:14.3004079Z         "doc": {
2026-06-21T05:16:14.3004188Z           "complete": false,
2026-06-21T05:16:14.3004318Z           "evidence": []
2026-06-21T05:16:14.3004417Z         },
2026-06-21T05:16:14.3004517Z         "impl": {
2026-06-21T05:16:14.3004637Z           "complete": true,
2026-06-21T05:16:14.3004746Z           "evidence": [
2026-06-21T05:16:14.3004846Z             {
2026-06-21T05:16:14.3004976Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3005245Z               "line": 3520
2026-06-21T05:16:14.3005346Z             },
2026-06-21T05:16:14.3005446Z             {
2026-06-21T05:16:14.3005579Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3005690Z               "line": 3572
2026-06-21T05:16:14.3005799Z             },
2026-06-21T05:16:14.3005904Z             {
2026-06-21T05:16:14.3006028Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3006142Z               "line": 3617
2026-06-21T05:16:14.3006242Z             },
2026-06-21T05:16:14.3006348Z             {
2026-06-21T05:16:14.3006481Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T05:16:14.3007619Z               "line": 92
2026-06-21T05:16:14.3007727Z             },
2026-06-21T05:16:14.3007831Z             {
2026-06-21T05:16:14.3007966Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T05:16:14.3008074Z               "line": 148
2026-06-21T05:16:14.3008180Z             },
2026-06-21T05:16:14.3008280Z             {
2026-06-21T05:16:14.3008408Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T05:16:14.3008514Z               "line": 192
2026-06-21T05:16:14.3008614Z             },
2026-06-21T05:16:14.3008713Z             {
2026-06-21T05:16:14.3008843Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T05:16:14.3009042Z               "line": 200
2026-06-21T05:16:14.3009134Z             },
2026-06-21T05:16:14.3009238Z             {
2026-06-21T05:16:14.3009371Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T05:16:14.3009482Z               "line": 211
2026-06-21T05:16:14.3009586Z             },
2026-06-21T05:16:14.3009691Z             {
2026-06-21T05:16:14.3009826Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T05:16:14.3009934Z               "line": 265
2026-06-21T05:16:14.3010030Z             },
2026-06-21T05:16:14.3010136Z             {
2026-06-21T05:16:14.3010263Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T05:16:14.3010381Z               "line": 279
2026-06-21T05:16:14.3010486Z             }
2026-06-21T05:16:14.3010589Z           ]
2026-06-21T05:16:14.3010693Z         },
2026-06-21T05:16:14.3010795Z         "int": {
2026-06-21T05:16:14.3010904Z           "complete": false,
2026-06-21T05:16:14.3011013Z           "evidence": []
2026-06-21T05:16:14.3011119Z         },
2026-06-21T05:16:14.3011224Z         "unit": {
2026-06-21T05:16:14.3011342Z           "complete": true,
2026-06-21T05:16:14.3011439Z           "evidence": [
2026-06-21T05:16:14.3011548Z             {
2026-06-21T05:16:14.3011681Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T05:16:14.3011796Z               "line": 419
2026-06-21T05:16:14.3011905Z             },
2026-06-21T05:16:14.3012006Z             {
2026-06-21T05:16:14.3012139Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T05:16:14.3012248Z               "line": 470
2026-06-21T05:16:14.3012349Z             },
2026-06-21T05:16:14.3012453Z             {
2026-06-21T05:16:14.3012587Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T05:16:14.3012693Z               "line": 499
2026-06-21T05:16:14.3012792Z             },
2026-06-21T05:16:14.3012887Z             {
2026-06-21T05:16:14.3013010Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T05:16:14.3013123Z               "line": 526
2026-06-21T05:16:14.3013227Z             }
2026-06-21T05:16:14.3013328Z           ]
2026-06-21T05:16:14.3013428Z         }
2026-06-21T05:16:14.3013532Z       }
2026-06-21T05:16:14.3013633Z     },
2026-06-21T05:16:14.3013723Z     {
2026-06-21T05:16:14.3013861Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-21T05:16:14.3014082Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-21T05:16:14.3014190Z       "requiredStages": [
2026-06-21T05:16:14.3014292Z         "impl",
2026-06-21T05:16:14.3014395Z         "unit"
2026-06-21T05:16:14.3014500Z       ],
2026-06-21T05:16:14.3014602Z       "stages": {
2026-06-21T05:16:14.3014820Z         "doc": {
2026-06-21T05:16:14.3014940Z           "complete": false,
2026-06-21T05:16:14.3015043Z           "evidence": []
2026-06-21T05:16:14.3015154Z         },
2026-06-21T05:16:14.3015255Z         "impl": {
2026-06-21T05:16:14.3015363Z           "complete": true,
2026-06-21T05:16:14.3015464Z           "evidence": [
2026-06-21T05:16:14.3015570Z             {
2026-06-21T05:16:14.3015735Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T05:16:14.3015835Z               "line": 62
2026-06-21T05:16:14.3015935Z             },
2026-06-21T05:16:14.3016040Z             {
2026-06-21T05:16:14.3016183Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T05:16:14.3016392Z               "line": 71
2026-06-21T05:16:14.3016488Z             },
2026-06-21T05:16:14.3016588Z             {
2026-06-21T05:16:14.3016736Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T05:16:14.3016837Z               "line": 80
2026-06-21T05:16:14.3016936Z             },
2026-06-21T05:16:14.3017050Z             {
2026-06-21T05:16:14.3017194Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T05:16:14.3017303Z               "line": 88
2026-06-21T05:16:14.3017398Z             },
2026-06-21T05:16:14.3017495Z             {
2026-06-21T05:16:14.3017627Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3017732Z               "line": 33
2026-06-21T05:16:14.3017833Z             },
2026-06-21T05:16:14.3017942Z             {
2026-06-21T05:16:14.3018074Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3018184Z               "line": 65
2026-06-21T05:16:14.3018287Z             },
2026-06-21T05:16:14.3018396Z             {
2026-06-21T05:16:14.3018526Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3018635Z               "line": 74
2026-06-21T05:16:14.3018745Z             },
2026-06-21T05:16:14.3018841Z             {
2026-06-21T05:16:14.3019055Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3019155Z               "line": 93
2026-06-21T05:16:14.3019264Z             },
2026-06-21T05:16:14.3019365Z             {
2026-06-21T05:16:14.3019503Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3019612Z               "line": 102
2026-06-21T05:16:14.3019714Z             },
2026-06-21T05:16:14.3019818Z             {
2026-06-21T05:16:14.3019950Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3020057Z               "line": 111
2026-06-21T05:16:14.3020161Z             },
2026-06-21T05:16:14.3020260Z             {
2026-06-21T05:16:14.3020390Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3020494Z               "line": 122
2026-06-21T05:16:14.3020600Z             },
2026-06-21T05:16:14.3020701Z             {
2026-06-21T05:16:14.3020837Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3020941Z               "line": 140
2026-06-21T05:16:14.3021046Z             },
2026-06-21T05:16:14.3021154Z             {
2026-06-21T05:16:14.3021278Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3021379Z               "line": 149
2026-06-21T05:16:14.3021478Z             },
2026-06-21T05:16:14.3021583Z             {
2026-06-21T05:16:14.3021708Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3021807Z               "line": 158
2026-06-21T05:16:14.3021907Z             },
2026-06-21T05:16:14.3022008Z             {
2026-06-21T05:16:14.3022150Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3022251Z               "line": 169
2026-06-21T05:16:14.3022356Z             },
2026-06-21T05:16:14.3022460Z             {
2026-06-21T05:16:14.3022595Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3022704Z               "line": 177
2026-06-21T05:16:14.3022803Z             },
2026-06-21T05:16:14.3022910Z             {
2026-06-21T05:16:14.3023037Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3023244Z               "line": 186
2026-06-21T05:16:14.3023347Z             },
2026-06-21T05:16:14.3023442Z             {
2026-06-21T05:16:14.3023575Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3023692Z               "line": 195
2026-06-21T05:16:14.3023801Z             },
2026-06-21T05:16:14.3023907Z             {
2026-06-21T05:16:14.3024045Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3024154Z               "line": 204
2026-06-21T05:16:14.3024255Z             },
2026-06-21T05:16:14.3024359Z             {
2026-06-21T05:16:14.3024494Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3024707Z               "line": 216
2026-06-21T05:16:14.3024809Z             },
2026-06-21T05:16:14.3024913Z             {
2026-06-21T05:16:14.3025046Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3025157Z               "line": 223
2026-06-21T05:16:14.3025260Z             },
2026-06-21T05:16:14.3025370Z             {
2026-06-21T05:16:14.3025500Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3025603Z               "line": 232
2026-06-21T05:16:14.3025704Z             },
2026-06-21T05:16:14.3025811Z             {
2026-06-21T05:16:14.3025937Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3026053Z               "line": 239
2026-06-21T05:16:14.3026159Z             },
2026-06-21T05:16:14.3026256Z             {
2026-06-21T05:16:14.3026390Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3026505Z               "line": 306
2026-06-21T05:16:14.3026604Z             },
2026-06-21T05:16:14.3026714Z             {
2026-06-21T05:16:14.3026843Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3026952Z               "line": 318
2026-06-21T05:16:14.3027058Z             },
2026-06-21T05:16:14.3027148Z             {
2026-06-21T05:16:14.3027276Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3027387Z               "line": 405
2026-06-21T05:16:14.3027487Z             }
2026-06-21T05:16:14.3027596Z           ]
2026-06-21T05:16:14.3027687Z         },
2026-06-21T05:16:14.3027797Z         "int": {
2026-06-21T05:16:14.3027906Z           "complete": false,
2026-06-21T05:16:14.3028017Z           "evidence": []
2026-06-21T05:16:14.3028121Z         },
2026-06-21T05:16:14.3028225Z         "unit": {
2026-06-21T05:16:14.3028331Z           "complete": true,
2026-06-21T05:16:14.3028431Z           "evidence": [
2026-06-21T05:16:14.3028540Z             {
2026-06-21T05:16:14.3028673Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3028786Z               "line": 487
2026-06-21T05:16:14.3028894Z             },
2026-06-21T05:16:14.3029067Z             {
2026-06-21T05:16:14.3029200Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3029310Z               "line": 528
2026-06-21T05:16:14.3029415Z             },
2026-06-21T05:16:14.3029519Z             {
2026-06-21T05:16:14.3029654Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3029758Z               "line": 541
2026-06-21T05:16:14.3029862Z             },
2026-06-21T05:16:14.3029964Z             {
2026-06-21T05:16:14.3030092Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3030211Z               "line": 627
2026-06-21T05:16:14.3030316Z             }
2026-06-21T05:16:14.3030421Z           ]
2026-06-21T05:16:14.3030520Z         }
2026-06-21T05:16:14.3030626Z       }
2026-06-21T05:16:14.3030730Z     },
2026-06-21T05:16:14.3030830Z     {
2026-06-21T05:16:14.3030965Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-21T05:16:14.3031184Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-21T05:16:14.3031308Z       "requiredStages": [
2026-06-21T05:16:14.3031416Z         "impl",
2026-06-21T05:16:14.3031511Z         "unit"
2026-06-21T05:16:14.3031616Z       ],
2026-06-21T05:16:14.3031724Z       "stages": {
2026-06-21T05:16:14.3031930Z         "doc": {
2026-06-21T05:16:14.3032039Z           "complete": false,
2026-06-21T05:16:14.3032143Z           "evidence": []
2026-06-21T05:16:14.3032249Z         },
2026-06-21T05:16:14.3032358Z         "impl": {
2026-06-21T05:16:14.3032482Z           "complete": true,
2026-06-21T05:16:14.3032587Z           "evidence": [
2026-06-21T05:16:14.3032696Z             {
2026-06-21T05:16:14.3032836Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-21T05:16:14.3032935Z               "line": 175
2026-06-21T05:16:14.3033035Z             },
2026-06-21T05:16:14.3033136Z             {
2026-06-21T05:16:14.3033287Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.3033484Z               "line": 171
2026-06-21T05:16:14.3033593Z             }
2026-06-21T05:16:14.3033693Z           ]
2026-06-21T05:16:14.3033794Z         },
2026-06-21T05:16:14.3033898Z         "int": {
2026-06-21T05:16:14.3034007Z           "complete": false,
2026-06-21T05:16:14.3034116Z           "evidence": []
2026-06-21T05:16:14.3034225Z         },
2026-06-21T05:16:14.3034333Z         "unit": {
2026-06-21T05:16:14.3034438Z           "complete": true,
2026-06-21T05:16:14.3034549Z           "evidence": [
2026-06-21T05:16:14.3034657Z             {
2026-06-21T05:16:14.3034792Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-21T05:16:14.3034901Z               "line": 297
2026-06-21T05:16:14.3035006Z             },
2026-06-21T05:16:14.3035111Z             {
2026-06-21T05:16:14.3035249Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.3035354Z               "line": 836
2026-06-21T05:16:14.3035464Z             },
2026-06-21T05:16:14.3035564Z             {
2026-06-21T05:16:14.3035703Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.3035807Z               "line": 849
2026-06-21T05:16:14.3035911Z             }
2026-06-21T05:16:14.3036018Z           ]
2026-06-21T05:16:14.3036112Z         }
2026-06-21T05:16:14.3036217Z       }
2026-06-21T05:16:14.3036318Z     },
2026-06-21T05:16:14.3036432Z     {
2026-06-21T05:16:14.3036555Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-21T05:16:14.3036714Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-21T05:16:14.3036831Z       "requiredStages": [
2026-06-21T05:16:14.3036935Z         "impl",
2026-06-21T05:16:14.3037046Z         "unit"
2026-06-21T05:16:14.3037145Z       ],
2026-06-21T05:16:14.3037250Z       "stages": {
2026-06-21T05:16:14.3037356Z         "doc": {
2026-06-21T05:16:14.3037470Z           "complete": false,
2026-06-21T05:16:14.3037579Z           "evidence": []
2026-06-21T05:16:14.3037676Z         },
2026-06-21T05:16:14.3037780Z         "impl": {
2026-06-21T05:16:14.3037889Z           "complete": true,
2026-06-21T05:16:14.3038005Z           "evidence": [
2026-06-21T05:16:14.3038100Z             {
2026-06-21T05:16:14.3038252Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.3038366Z               "line": 116
2026-06-21T05:16:14.3038456Z             },
2026-06-21T05:16:14.3038567Z             {
2026-06-21T05:16:14.3038718Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T05:16:14.3038829Z               "line": 507
2026-06-21T05:16:14.3038930Z             }
2026-06-21T05:16:14.3039105Z           ]
2026-06-21T05:16:14.3039204Z         },
2026-06-21T05:16:14.3039308Z         "int": {
2026-06-21T05:16:14.3039431Z           "complete": false,
2026-06-21T05:16:14.3039536Z           "evidence": []
2026-06-21T05:16:14.3039642Z         },
2026-06-21T05:16:14.3039745Z         "unit": {
2026-06-21T05:16:14.3039850Z           "complete": true,
2026-06-21T05:16:14.3039956Z           "evidence": [
2026-06-21T05:16:14.3040060Z             {
2026-06-21T05:16:14.3040223Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T05:16:14.3040323Z               "line": 541
2026-06-21T05:16:14.3040418Z             }
2026-06-21T05:16:14.3040510Z           ]
2026-06-21T05:16:14.3040614Z         }
2026-06-21T05:16:14.3040723Z       }
2026-06-21T05:16:14.3040928Z     },
2026-06-21T05:16:14.3041033Z     {
2026-06-21T05:16:14.3041177Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-21T05:16:14.3041367Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-21T05:16:14.3041483Z       "requiredStages": [
2026-06-21T05:16:14.3041590Z         "impl",
2026-06-21T05:16:14.3041701Z         "unit"
2026-06-21T05:16:14.3041802Z       ],
2026-06-21T05:16:14.3041910Z       "stages": {
2026-06-21T05:16:14.3042009Z         "doc": {
2026-06-21T05:16:14.3042124Z           "complete": false,
2026-06-21T05:16:14.3042232Z           "evidence": []
2026-06-21T05:16:14.3042340Z         },
2026-06-21T05:16:14.3042537Z         "impl": {
2026-06-21T05:16:14.3042660Z           "complete": true,
2026-06-21T05:16:14.3042766Z           "evidence": [
2026-06-21T05:16:14.3042866Z             {
2026-06-21T05:16:14.3043018Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.3043124Z               "line": 552
2026-06-21T05:16:14.3043242Z             },
2026-06-21T05:16:14.3043338Z             {
2026-06-21T05:16:14.3043481Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-21T05:16:14.3043590Z               "line": 28
2026-06-21T05:16:14.3043691Z             }
2026-06-21T05:16:14.3043796Z           ]
2026-06-21T05:16:14.3043895Z         },
2026-06-21T05:16:14.3044006Z         "int": {
2026-06-21T05:16:14.3044120Z           "complete": false,
2026-06-21T05:16:14.3044234Z           "evidence": []
2026-06-21T05:16:14.3044340Z         },
2026-06-21T05:16:14.3044444Z         "unit": {
2026-06-21T05:16:14.3044552Z           "complete": true,
2026-06-21T05:16:14.3044662Z           "evidence": [
2026-06-21T05:16:14.3044771Z             {
2026-06-21T05:16:14.3044898Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-21T05:16:14.3045013Z               "line": 229
2026-06-21T05:16:14.3045118Z             }
2026-06-21T05:16:14.3045222Z           ]
2026-06-21T05:16:14.3045328Z         }
2026-06-21T05:16:14.3045433Z       }
2026-06-21T05:16:14.3045546Z     },
2026-06-21T05:16:14.3045647Z     {
2026-06-21T05:16:14.3045766Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-21T05:16:14.3045919Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-21T05:16:14.3046029Z       "requiredStages": [],
2026-06-21T05:16:14.3046138Z       "stages": {
2026-06-21T05:16:14.3046238Z         "doc": {
2026-06-21T05:16:14.3046358Z           "complete": false,
2026-06-21T05:16:14.3046472Z           "evidence": []
2026-06-21T05:16:14.3046573Z         },
2026-06-21T05:16:14.3046686Z         "impl": {
2026-06-21T05:16:14.3046796Z           "complete": false,
2026-06-21T05:16:14.3046907Z           "evidence": []
2026-06-21T05:16:14.3047011Z         },
2026-06-21T05:16:14.3047115Z         "int": {
2026-06-21T05:16:14.3047222Z           "complete": false,
2026-06-21T05:16:14.3047330Z           "evidence": []
2026-06-21T05:16:14.3047439Z         },
2026-06-21T05:16:14.3047544Z         "unit": {
2026-06-21T05:16:14.3047664Z           "complete": false,
2026-06-21T05:16:14.3047767Z           "evidence": []
2026-06-21T05:16:14.3047873Z         }
2026-06-21T05:16:14.3047973Z       }
2026-06-21T05:16:14.3048077Z     },
2026-06-21T05:16:14.3048178Z     {
2026-06-21T05:16:14.3048312Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-21T05:16:14.3048473Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-21T05:16:14.3048593Z       "requiredStages": [
2026-06-21T05:16:14.3048702Z         "impl",
2026-06-21T05:16:14.3048808Z         "unit"
2026-06-21T05:16:14.3048917Z       ],
2026-06-21T05:16:14.3049108Z       "stages": {
2026-06-21T05:16:14.3049204Z         "doc": {
2026-06-21T05:16:14.3049327Z           "complete": false,
2026-06-21T05:16:14.3049447Z           "evidence": []
2026-06-21T05:16:14.3049552Z         },
2026-06-21T05:16:14.3049655Z         "impl": {
2026-06-21T05:16:14.3049774Z           "complete": true,
2026-06-21T05:16:14.3049883Z           "evidence": [
2026-06-21T05:16:14.3049986Z             {
2026-06-21T05:16:14.3050235Z               "path": "crates/spt-live/src/turn.rs",
2026-06-21T05:16:14.3050339Z               "line": 19
2026-06-21T05:16:14.3050449Z             },
2026-06-21T05:16:14.3050545Z             {
2026-06-21T05:16:14.3050701Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.3050816Z               "line": 463
2026-06-21T05:16:14.3050920Z             },
2026-06-21T05:16:14.3051021Z             {
2026-06-21T05:16:14.3051155Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.3051273Z               "line": 499
2026-06-21T05:16:14.3051379Z             },
2026-06-21T05:16:14.3051478Z             {
2026-06-21T05:16:14.3051718Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.3051822Z               "line": 547
2026-06-21T05:16:14.3051932Z             },
2026-06-21T05:16:14.3052033Z             {
2026-06-21T05:16:14.3052179Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-21T05:16:14.3052290Z               "line": 15
2026-06-21T05:16:14.3052400Z             },
2026-06-21T05:16:14.3052508Z             {
2026-06-21T05:16:14.3052646Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-21T05:16:14.3052759Z               "line": 48
2026-06-21T05:16:14.3052849Z             },
2026-06-21T05:16:14.3052958Z             {
2026-06-21T05:16:14.3053088Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-21T05:16:14.3053197Z               "line": 119
2026-06-21T05:16:14.3053302Z             },
2026-06-21T05:16:14.3053407Z             {
2026-06-21T05:16:14.3053535Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3053646Z               "line": 3948
2026-06-21T05:16:14.3053755Z             }
2026-06-21T05:16:14.3053868Z           ]
2026-06-21T05:16:14.3053970Z         },
2026-06-21T05:16:14.3054074Z         "int": {
2026-06-21T05:16:14.3054183Z           "complete": false,
2026-06-21T05:16:14.3054295Z           "evidence": []
2026-06-21T05:16:14.3054394Z         },
2026-06-21T05:16:14.3054512Z         "unit": {
2026-06-21T05:16:14.3054619Z           "complete": true,
2026-06-21T05:16:14.3054713Z           "evidence": [
2026-06-21T05:16:14.3054823Z             {
2026-06-21T05:16:14.3054971Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.3055089Z               "line": 765
2026-06-21T05:16:14.3055189Z             },
2026-06-21T05:16:14.3055293Z             {
2026-06-21T05:16:14.3055439Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-21T05:16:14.3055544Z               "line": 165
2026-06-21T05:16:14.3055650Z             },
2026-06-21T05:16:14.3055754Z             {
2026-06-21T05:16:14.3055893Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-21T05:16:14.3056012Z               "line": 175
2026-06-21T05:16:14.3056121Z             }
2026-06-21T05:16:14.3056227Z           ]
2026-06-21T05:16:14.3056326Z         }
2026-06-21T05:16:14.3056425Z       }
2026-06-21T05:16:14.3056522Z     },
2026-06-21T05:16:14.3056627Z     {
2026-06-21T05:16:14.3056760Z       "id": "REQ-HAZARD-SUDO-SECURE-PATH",
2026-06-21T05:16:14.3057662Z       "title": "Elevation guidance on Unix names the binary's ABSOLUTE path under sudo (a user-local install ~/.local/bin · ~/.cargo/bin is not on sudo's secure_path, so bare `sudo spt` dies 'command not found'); gated commands auto-elevate on an interactive TTY, else print the runnable hint (5.10)",
2026-06-21T05:16:14.3057777Z       "requiredStages": [
2026-06-21T05:16:14.3057872Z         "impl",
2026-06-21T05:16:14.3057979Z         "unit"
2026-06-21T05:16:14.3058084Z       ],
2026-06-21T05:16:14.3058190Z       "stages": {
2026-06-21T05:16:14.3058303Z         "doc": {
2026-06-21T05:16:14.3058433Z           "complete": false,
2026-06-21T05:16:14.3058538Z           "evidence": []
2026-06-21T05:16:14.3058642Z         },
2026-06-21T05:16:14.3058743Z         "impl": {
2026-06-21T05:16:14.3058852Z           "complete": true,
2026-06-21T05:16:14.3059087Z           "evidence": [
2026-06-21T05:16:14.3059190Z             {
2026-06-21T05:16:14.3059478Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T05:16:14.3059591Z               "line": 192
2026-06-21T05:16:14.3059693Z             },
2026-06-21T05:16:14.3059802Z             {
2026-06-21T05:16:14.3059929Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T05:16:14.3060031Z               "line": 279
2026-06-21T05:16:14.3060135Z             }
2026-06-21T05:16:14.3060239Z           ]
2026-06-21T05:16:14.3060344Z         },
2026-06-21T05:16:14.3060448Z         "int": {
2026-06-21T05:16:14.3060570Z           "complete": false,
2026-06-21T05:16:14.3060670Z           "evidence": []
2026-06-21T05:16:14.3060772Z         },
2026-06-21T05:16:14.3060976Z         "unit": {
2026-06-21T05:16:14.3061085Z           "complete": true,
2026-06-21T05:16:14.3061190Z           "evidence": [
2026-06-21T05:16:14.3061295Z             {
2026-06-21T05:16:14.3061434Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T05:16:14.3061543Z               "line": 470
2026-06-21T05:16:14.3061658Z             },
2026-06-21T05:16:14.3061763Z             {
2026-06-21T05:16:14.3061891Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T05:16:14.3062002Z               "line": 526
2026-06-21T05:16:14.3062101Z             }
2026-06-21T05:16:14.3064797Z           ]
2026-06-21T05:16:14.3064920Z         }
2026-06-21T05:16:14.3065025Z       }
2026-06-21T05:16:14.3065131Z     },
2026-06-21T05:16:14.3065231Z     {
2026-06-21T05:16:14.3065378Z       "id": "REQ-HAZARD-TEMPLATE-ARGV-FILL",
2026-06-21T05:16:14.3069346Z       "title": "Command-template substitution fills argv ELEMENTS, not a re-tokenized string: spt-core currently `fill_template`s {key} values INTO the command STRING and THEN `tokenize`s the filled string (runtime.rs:94/122), so a multi-word {key} value whitespace-SPLITS into multiple argv tokens unless the adapter hand-quotes the placeholder, and a value containing a `\"` (or `;`) injects/breaks tokenization (shell-injection-adjacent). A filled value MUST become exactly ONE argv element regardless of spaces/quotes in the value. Fix: tokenize the TEMPLATE into argv FIRST, then `fill_template` EACH token, so a `{key}` slot resolves to a single element and the value never participates in tokenization (no whitespace-split, no quote/semicolon injection); preserve the missing-key / empty-command errors and `{{`/`}}` non-interpretation. perri's F-009 (v0.8.1 dogfood, argv-capture-confirmed): a multi-word `{psyche_prompt}` = \"PSYCHE REVIVAL time: epoch-ms:… incoming event: (none)\" arrived as argv[6..12] (7 stray tokens), the harness runner strict-parsed `--prompt` against the 2nd word, exited 2 within ~1s → phantom hosted perch. Applies to EVERY [session.<role>] template (psyche_init, extractor, notif, …); digest survives today only because its fills ({session_id}/{source}) are single-token.",
2026-06-21T05:16:14.3069512Z       "requiredStages": [
2026-06-21T05:16:14.3069618Z         "impl",
2026-06-21T05:16:14.3069723Z         "unit",
2026-06-21T05:16:14.3069832Z         "int"
2026-06-21T05:16:14.3069938Z       ],
2026-06-21T05:16:14.3070047Z       "stages": {
2026-06-21T05:16:14.3070151Z         "doc": {
2026-06-21T05:16:14.3070267Z           "complete": false,
2026-06-21T05:16:14.3070381Z           "evidence": []
2026-06-21T05:16:14.3070485Z         },
2026-06-21T05:16:14.3070577Z         "impl": {
2026-06-21T05:16:14.3070690Z           "complete": true,
2026-06-21T05:16:14.3070789Z           "evidence": [
2026-06-21T05:16:14.3070894Z             {
2026-06-21T05:16:14.3071045Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T05:16:14.3071154Z               "line": 116
2026-06-21T05:16:14.3071259Z             },
2026-06-21T05:16:14.3071374Z             {
2026-06-21T05:16:14.3071526Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T05:16:14.3071636Z               "line": 132
2026-06-21T05:16:14.3071736Z             },
2026-06-21T05:16:14.3071821Z             {
2026-06-21T05:16:14.3071974Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T05:16:14.3072223Z               "line": 434
2026-06-21T05:16:14.3072323Z             },
2026-06-21T05:16:14.3072432Z             {
2026-06-21T05:16:14.3072581Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.3072690Z               "line": 139
2026-06-21T05:16:14.3072790Z             },
2026-06-21T05:16:14.3072891Z             {
2026-06-21T05:16:14.3073042Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.3073148Z               "line": 326
2026-06-21T05:16:14.3073252Z             },
2026-06-21T05:16:14.3073352Z             {
2026-06-21T05:16:14.3073502Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.3073723Z               "line": 555
2026-06-21T05:16:14.3073823Z             }
2026-06-21T05:16:14.3073926Z           ]
2026-06-21T05:16:14.3074026Z         },
2026-06-21T05:16:14.3074131Z         "int": {
2026-06-21T05:16:14.3074237Z           "complete": true,
2026-06-21T05:16:14.3074355Z           "evidence": [
2026-06-21T05:16:14.3074456Z             {
2026-06-21T05:16:14.3074631Z               "path": "crates/spt/tests/livehost_nonresident_e2e.rs",
2026-06-21T05:16:14.3074742Z               "line": 32
2026-06-21T05:16:14.3074842Z             }
2026-06-21T05:16:14.3074946Z           ]
2026-06-21T05:16:14.3075047Z         },
2026-06-21T05:16:14.3075156Z         "unit": {
2026-06-21T05:16:14.3075266Z           "complete": true,
2026-06-21T05:16:14.3075376Z           "evidence": [
2026-06-21T05:16:14.3075485Z             {
2026-06-21T05:16:14.3075619Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.3075730Z               "line": 625
2026-06-21T05:16:14.3075828Z             },
2026-06-21T05:16:14.3075938Z             {
2026-06-21T05:16:14.3076082Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.3076195Z               "line": 646
2026-06-21T05:16:14.3076299Z             },
2026-06-21T05:16:14.3076400Z             {
2026-06-21T05:16:14.3076545Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.3076659Z               "line": 662
2026-06-21T05:16:14.3076766Z             },
2026-06-21T05:16:14.3076869Z             {
2026-06-21T05:16:14.3077013Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.3077127Z               "line": 680
2026-06-21T05:16:14.3077231Z             },
2026-06-21T05:16:14.3077333Z             {
2026-06-21T05:16:14.3077480Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.3077590Z               "line": 704
2026-06-21T05:16:14.3077699Z             }
2026-06-21T05:16:14.3077799Z           ]
2026-06-21T05:16:14.3077909Z         }
2026-06-21T05:16:14.3078009Z       }
2026-06-21T05:16:14.3078114Z     },
2026-06-21T05:16:14.3078214Z     {
2026-06-21T05:16:14.3078352Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-21T05:16:14.3078534Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-21T05:16:14.3078649Z       "requiredStages": [
2026-06-21T05:16:14.3078767Z         "impl",
2026-06-21T05:16:14.3078868Z         "unit"
2026-06-21T05:16:14.3079029Z       ],
2026-06-21T05:16:14.3079133Z       "stages": {
2026-06-21T05:16:14.3079239Z         "doc": {
2026-06-21T05:16:14.3079349Z           "complete": false,
2026-06-21T05:16:14.3079452Z           "evidence": []
2026-06-21T05:16:14.3079558Z         },
2026-06-21T05:16:14.3079663Z         "impl": {
2026-06-21T05:16:14.3079772Z           "complete": true,
2026-06-21T05:16:14.3079883Z           "evidence": [
2026-06-21T05:16:14.3079987Z             {
2026-06-21T05:16:14.3080135Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-21T05:16:14.3080240Z               "line": 35
2026-06-21T05:16:14.3080345Z             }
2026-06-21T05:16:14.3080444Z           ]
2026-06-21T05:16:14.3080546Z         },
2026-06-21T05:16:14.3080649Z         "int": {
2026-06-21T05:16:14.3080754Z           "complete": false,
2026-06-21T05:16:14.3080865Z           "evidence": []
2026-06-21T05:16:14.3080964Z         },
2026-06-21T05:16:14.3081170Z         "unit": {
2026-06-21T05:16:14.3081274Z           "complete": true,
2026-06-21T05:16:14.3081388Z           "evidence": [
2026-06-21T05:16:14.3081488Z             {
2026-06-21T05:16:14.3081634Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-21T05:16:14.3081747Z               "line": 220
2026-06-21T05:16:14.3081839Z             }
2026-06-21T05:16:14.3081939Z           ]
2026-06-21T05:16:14.3082043Z         }
2026-06-21T05:16:14.3082144Z       }
2026-06-21T05:16:14.3082244Z     },
2026-06-21T05:16:14.3082343Z     {
2026-06-21T05:16:14.3082478Z       "id": "REQ-HAZARD-UNHOST-PSYCHE-REAP",
2026-06-21T05:16:14.3085712Z       "title": "On un-host, the detached `{id}-psyche` HARNESS PROCESS is reaped — not just its in-brain pulse-driver thread. Today stop_host (livehost.rs:203) trips the HostedLife stop flag + JOINS the driver thread, but the Psyche is a detached harness process (spawn_psyche → ManifestRuntime detached spawn, runtime.rs:341-356; its pid is untracked in HostedLife though stamped on the `{id}-psyche` perch, where residency-confirm already reads it). So endpoint-stop / mid-life agent-death / a B2/B5 offline-then-unhost leaves the psyche process ORPHANED, alive until the next daemon-stop (where Breap's job/group reaps the whole brain subtree). The Psyche STAYS a harness process by design (CONTEXT.md 97/203/251 — headless harness session, its own perch) — the fix does NOT move it in-brain; it SCOPED-kills the `{id}-psyche` pid on un-host (never machine-wide — shared box). Track the pid in HostedLife at host_one (cleanest) or read the `{id}-psyche` perch pid at stop_host. Composes with H3 (endpoint stop → offline → reconcile un-host → reap) and B2/B5 (the offline arms that trigger un-host). (v0.12.0)",
2026-06-21T05:16:14.3085859Z       "requiredStages": [
2026-06-21T05:16:14.3085961Z         "impl",
2026-06-21T05:16:14.3086064Z         "unit",
2026-06-21T05:16:14.3086169Z         "int"
2026-06-21T05:16:14.3086270Z       ],
2026-06-21T05:16:14.3086388Z       "stages": {
2026-06-21T05:16:14.3086498Z         "doc": {
2026-06-21T05:16:14.3086609Z           "complete": false,
2026-06-21T05:16:14.3086726Z           "evidence": []
2026-06-21T05:16:14.3086817Z         },
2026-06-21T05:16:14.3086926Z         "impl": {
2026-06-21T05:16:14.3087030Z           "complete": true,
2026-06-21T05:16:14.3087138Z           "evidence": [
2026-06-21T05:16:14.3087244Z             {
2026-06-21T05:16:14.3087396Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.3087496Z               "line": 202
2026-06-21T05:16:14.3087597Z             },
2026-06-21T05:16:14.3087701Z             {
2026-06-21T05:16:14.3087869Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-21T05:16:14.3087978Z               "line": 107
2026-06-21T05:16:14.3088082Z             },
2026-06-21T05:16:14.3088184Z             {
2026-06-21T05:16:14.3088326Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-21T05:16:14.3088426Z               "line": 138
2026-06-21T05:16:14.3088518Z             },
2026-06-21T05:16:14.3088617Z             {
2026-06-21T05:16:14.3088760Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.3088861Z               "line": 209
2026-06-21T05:16:14.3089017Z             },
2026-06-21T05:16:14.3089109Z             {
2026-06-21T05:16:14.3089251Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.3089375Z               "line": 246
2026-06-21T05:16:14.3089491Z             },
2026-06-21T05:16:14.3089594Z             {
2026-06-21T05:16:14.3089746Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.3089852Z               "line": 379
2026-06-21T05:16:14.3089961Z             }
2026-06-21T05:16:14.3090060Z           ]
2026-06-21T05:16:14.3090166Z         },
2026-06-21T05:16:14.3090266Z         "int": {
2026-06-21T05:16:14.3090375Z           "complete": true,
2026-06-21T05:16:14.3090490Z           "evidence": [
2026-06-21T05:16:14.3090595Z             {
2026-06-21T05:16:14.3090862Z               "path": "crates/spt/tests/unhost_psyche_reap_e2e.rs",
2026-06-21T05:16:14.3090971Z               "line": 17
2026-06-21T05:16:14.3091073Z             }
2026-06-21T05:16:14.3091176Z           ]
2026-06-21T05:16:14.3091267Z         },
2026-06-21T05:16:14.3091368Z         "unit": {
2026-06-21T05:16:14.3091473Z           "complete": true,
2026-06-21T05:16:14.3091582Z           "evidence": [
2026-06-21T05:16:14.3091682Z             {
2026-06-21T05:16:14.3091829Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.3091938Z               "line": 982
2026-06-21T05:16:14.3092034Z             }
2026-06-21T05:16:14.3092137Z           ]
2026-06-21T05:16:14.3092341Z         }
2026-06-21T05:16:14.3092447Z       }
2026-06-21T05:16:14.3092551Z     },
2026-06-21T05:16:14.3092651Z     {
2026-06-21T05:16:14.3092785Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-21T05:16:14.3093076Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-21T05:16:14.3093199Z       "requiredStages": [
2026-06-21T05:16:14.3093301Z         "impl",
2026-06-21T05:16:14.3093400Z         "unit"
2026-06-21T05:16:14.3093495Z       ],
2026-06-21T05:16:14.3093595Z       "stages": {
2026-06-21T05:16:14.3093705Z         "doc": {
2026-06-21T05:16:14.3093824Z           "complete": false,
2026-06-21T05:16:14.3093935Z           "evidence": []
2026-06-21T05:16:14.3094025Z         },
2026-06-21T05:16:14.3094120Z         "impl": {
2026-06-21T05:16:14.3094230Z           "complete": true,
2026-06-21T05:16:14.3094335Z           "evidence": [
2026-06-21T05:16:14.3094434Z             {
2026-06-21T05:16:14.3094589Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T05:16:14.3094706Z               "line": 405
2026-06-21T05:16:14.3094805Z             },
2026-06-21T05:16:14.3094911Z             {
2026-06-21T05:16:14.3095051Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.3095160Z               "line": 409
2026-06-21T05:16:14.3095266Z             },
2026-06-21T05:16:14.3095366Z             {
2026-06-21T05:16:14.3095508Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-21T05:16:14.3095610Z               "line": 156
2026-06-21T05:16:14.3095705Z             }
2026-06-21T05:16:14.3095809Z           ]
2026-06-21T05:16:14.3095910Z         },
2026-06-21T05:16:14.3096015Z         "int": {
2026-06-21T05:16:14.3096119Z           "complete": false,
2026-06-21T05:16:14.3096234Z           "evidence": []
2026-06-21T05:16:14.3096334Z         },
2026-06-21T05:16:14.3096439Z         "unit": {
2026-06-21T05:16:14.3096549Z           "complete": true,
2026-06-21T05:16:14.3096657Z           "evidence": [
2026-06-21T05:16:14.3096763Z             {
2026-06-21T05:16:14.3096907Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.3097016Z               "line": 865
2026-06-21T05:16:14.3097107Z             },
2026-06-21T05:16:14.3097212Z             {
2026-06-21T05:16:14.3097353Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.3097467Z               "line": 879
2026-06-21T05:16:14.3097567Z             },
2026-06-21T05:16:14.3097665Z             {
2026-06-21T05:16:14.3097813Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.3097919Z               "line": 898
2026-06-21T05:16:14.3098023Z             },
2026-06-21T05:16:14.3098124Z             {
2026-06-21T05:16:14.3098266Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.3098380Z               "line": 915
2026-06-21T05:16:14.3098477Z             },
2026-06-21T05:16:14.3098581Z             {
2026-06-21T05:16:14.3098729Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-21T05:16:14.3098838Z               "line": 441
2026-06-21T05:16:14.3099024Z             }
2026-06-21T05:16:14.3099125Z           ]
2026-06-21T05:16:14.3099220Z         }
2026-06-21T05:16:14.3099325Z       }
2026-06-21T05:16:14.3099431Z     },
2026-06-21T05:16:14.3099520Z     {
2026-06-21T05:16:14.3099769Z       "id": "REQ-HAZARD-VIEWER-CLOSE-DETACH",
2026-06-21T05:16:14.3109480Z       "title": "A VIEW is independent from the endpoint: closing the tab/window where `spt endpoint run` was invoked must detach ONLY the `spt rc` attach pump — the daemon-hosted harness keeps running and stays re-attachable via `spt rc <id>`. ROOT (Windows, v0.12.0 real-harness defect): the daemon never breaks away from the launching terminal's Job Object. Windows Terminal / VS Code place the launched shell AND every descendant into a Job Object with JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE; closing the tab drops the terminal's last job handle → the OS terminates every process still in that job. A child escapes only with CREATE_BREAKAWAY_FROM_JOB — used NOWHERE in the tree. Both daemon spawn paths (daemon.rs:707 detached_no_inherit = DETACHED_PROCESS|CREATE_NEW_PROCESS_GROUP|CREATE_NO_WINDOW; deelevate.rs:519 elevated = CREATE_NEW_CONSOLE|...) drop the CONSOLE but NOT job membership, so the daemon's freshly broker-spawned ConPTY harness subtree is reaped on tab-close. The ConPTY/pseudoconsole isolation itself is CORRECT (portable-pty builds the pseudoconsole in the daemon; no console signal / handle leak) — the leaking lifetime binding is the Job Object, not the console. FIX: add CREATE_BREAKAWAY_FROM_JOB to both daemon spawn paths AND pin each broker-spawned harness into a DAEMON-OWNED Job Object (mirror reap.rs/Breap) as backstop (survives even where a terminal sets SILENT_BREAKAWAY_OK=false). Unix: the daemon's own session detachment (new session, no controlling terminal) already keeps a closing terminal's SIGHUP off its children — verify, add a guard test, no code expected. FIX UPDATE (v0.12.1 L1.5, doyle re-scope operator-approved 2026-06-18): job-neutral daemon launch is now PRIMARY, breakaway DEMOTED to a fallback rung. ROOT reframed — the daemon INHERITS the terminal's Job because spawn_detached runs FROM the terminal-child CLI (DETACHED_PROCESS detaches the console, not the job); breakaway tried to claw back out but a job CAN deny it (the L1 finding). FIX: launch the cold-started daemon via a job-NEUTRAL creator so it is WmiPrvSE/Task-Scheduler-owned, OUTSIDE any terminal job from birth (why Task-Scheduler-autostarted daemons never had this bug). Launcher ladder (first-success-wins, daemon.rs spawn_detached → BOTH cold-start AND `spt daemon start`): (1) WMI Win32_Process.Create via ABSOLUTE powershell -EncodedCommand (KH 5.12 abs path; base64-UTF16LE dodges all quoting; success requires BOTH ReturnValue==0 AND a parsed ProcessId, else fall-through — never a silent launched), forwarding SPT_* env via a `cmd /c set … & start /b` wrapper because a WMI/scheduler child does NOT inherit transient shell env (verified — SPT_HOME would be lost, wrong universe); (2) schtasks one-shot (same env wrapper; best-effort fallback); (3) CREATE_BREAKAWAY_FROM_JOB (the L1 code, reordered below); (4) in-job last resort (logs DETACH_IN_JOB + tab-close caveat). detached_no_inherit (breakaway-then-in-job) is UNCHANGED for its other caller shellhost::launch_shell (a daemon-spawned shell is already job-neutral once the daemon is). The elevated deelevate path keeps its L1 breakaway for now (elevated-case WMI-reparent = FOLLOW-UP). (v0.12.1)",
2026-06-21T05:16:14.3109823Z       "requiredStages": [
2026-06-21T05:16:14.3109929Z         "doc",
2026-06-21T05:16:14.3110033Z         "impl",
2026-06-21T05:16:14.3110142Z         "unit",
2026-06-21T05:16:14.3110239Z         "int"
2026-06-21T05:16:14.3110344Z       ],
2026-06-21T05:16:14.3110448Z       "stages": {
2026-06-21T05:16:14.3110549Z         "doc": {
2026-06-21T05:16:14.3110668Z           "complete": true,
2026-06-21T05:16:14.3110771Z           "evidence": [
2026-06-21T05:16:14.3110895Z             {
2026-06-21T05:16:14.3111011Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.3111114Z               "line": 420
2026-06-21T05:16:14.3111210Z             },
2026-06-21T05:16:14.3111310Z             {
2026-06-21T05:16:14.3111433Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T05:16:14.3111639Z               "line": 402
2026-06-21T05:16:14.3111743Z             }
2026-06-21T05:16:14.3111854Z           ]
2026-06-21T05:16:14.3111958Z         },
2026-06-21T05:16:14.3112058Z         "impl": {
2026-06-21T05:16:14.3112164Z           "complete": true,
2026-06-21T05:16:14.3112268Z           "evidence": [
2026-06-21T05:16:14.3112363Z             {
2026-06-21T05:16:14.3112508Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.3112607Z               "line": 797
2026-06-21T05:16:14.3112706Z             },
2026-06-21T05:16:14.3112812Z             {
2026-06-21T05:16:14.3112954Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.3113154Z               "line": 822
2026-06-21T05:16:14.3113257Z             },
2026-06-21T05:16:14.3113361Z             {
2026-06-21T05:16:14.3113500Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.3113609Z               "line": 839
2026-06-21T05:16:14.3113704Z             },
2026-06-21T05:16:14.3113805Z             {
2026-06-21T05:16:14.3113953Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.3114052Z               "line": 854
2026-06-21T05:16:14.3114158Z             },
2026-06-21T05:16:14.3114262Z             {
2026-06-21T05:16:14.3114392Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.3114496Z               "line": 874
2026-06-21T05:16:14.3114587Z             },
2026-06-21T05:16:14.3114692Z             {
2026-06-21T05:16:14.3114825Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.3114940Z               "line": 964
2026-06-21T05:16:14.3115045Z             },
2026-06-21T05:16:14.3115150Z             {
2026-06-21T05:16:14.3115293Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.3115404Z               "line": 1016
2026-06-21T05:16:14.3115507Z             },
2026-06-21T05:16:14.3115612Z             {
2026-06-21T05:16:14.3115747Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.3115864Z               "line": 1075
2026-06-21T05:16:14.3115959Z             },
2026-06-21T05:16:14.3116064Z             {
2026-06-21T05:16:14.3116214Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T05:16:14.3116333Z               "line": 527
2026-06-21T05:16:14.3116434Z             }
2026-06-21T05:16:14.3116538Z           ]
2026-06-21T05:16:14.3116629Z         },
2026-06-21T05:16:14.3116735Z         "int": {
2026-06-21T05:16:14.3116853Z           "complete": true,
2026-06-21T05:16:14.3116963Z           "evidence": [
2026-06-21T05:16:14.3117059Z             {
2026-06-21T05:16:14.3117201Z               "path": "crates/spt/tests/job_escape_e2e.rs",
2026-06-21T05:16:14.3117321Z               "line": 35
2026-06-21T05:16:14.3117421Z             },
2026-06-21T05:16:14.3117521Z             {
2026-06-21T05:16:14.3117669Z               "path": "crates/spt/tests/job_escape_e2e.rs",
2026-06-21T05:16:14.3117773Z               "line": 569
2026-06-21T05:16:14.3117883Z             },
2026-06-21T05:16:14.3117989Z             {
2026-06-21T05:16:14.3118121Z               "path": "crates/spt/tests/job_escape_e2e.rs",
2026-06-21T05:16:14.3118227Z               "line": 590
2026-06-21T05:16:14.3118327Z             }
2026-06-21T05:16:14.3118431Z           ]
2026-06-21T05:16:14.3118530Z         },
2026-06-21T05:16:14.3118640Z         "unit": {
2026-06-21T05:16:14.3118762Z           "complete": true,
2026-06-21T05:16:14.3118871Z           "evidence": [
2026-06-21T05:16:14.3119025Z             {
2026-06-21T05:16:14.3119172Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.3119283Z               "line": 1202
2026-06-21T05:16:14.3119387Z             },
2026-06-21T05:16:14.3119491Z             {
2026-06-21T05:16:14.3119635Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.3119735Z               "line": 1246
2026-06-21T05:16:14.3119840Z             },
2026-06-21T05:16:14.3119940Z             {
2026-06-21T05:16:14.3120082Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.3120297Z               "line": 1260
2026-06-21T05:16:14.3120397Z             },
2026-06-21T05:16:14.3120503Z             {
2026-06-21T05:16:14.3120645Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.3120765Z               "line": 1278
2026-06-21T05:16:14.3120866Z             },
2026-06-21T05:16:14.3120974Z             {
2026-06-21T05:16:14.3121114Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.3121219Z               "line": 1302
2026-06-21T05:16:14.3121312Z             },
2026-06-21T05:16:14.3121411Z             {
2026-06-21T05:16:14.3121551Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.3121760Z               "line": 1529
2026-06-21T05:16:14.3121865Z             }
2026-06-21T05:16:14.3121965Z           ]
2026-06-21T05:16:14.3122065Z         }
2026-06-21T05:16:14.3122175Z       }
2026-06-21T05:16:14.3122275Z     },
2026-06-21T05:16:14.3122370Z     {
2026-06-21T05:16:14.3122514Z       "id": "REQ-HAZARD-VIEWER-ISOLATION",
2026-06-21T05:16:14.3124704Z       "title": "A slow / dead / hostile VIEWER must NEVER stall the controller, the PTY child, or the session drain thread. The broker drain fans output to the controller on the authoritative blocking bounded path (advances delivered_through) but to each viewer via a bounded per-viewer channel with a dedicated writer thread; the drain `try_send`s under the log lock and a viewer whose bounded queue OVERFLOWS (can't keep up) is EVICTED (queue dropped, writer thread ends, removed from the viewers map) — the drain thread NEVER touches a viewer socket, so no viewer write can backpressure or block it. A soft viewer cap bounds the thread count. Viewer eviction never perturbs the controller stream, the delivered_through cursor, or the child.",
2026-06-21T05:16:14.3124841Z       "requiredStages": [
2026-06-21T05:16:14.3124942Z         "unit",
2026-06-21T05:16:14.3125052Z         "int"
2026-06-21T05:16:14.3125156Z       ],
2026-06-21T05:16:14.3125271Z       "stages": {
2026-06-21T05:16:14.3125381Z         "doc": {
2026-06-21T05:16:14.3125490Z           "complete": true,
2026-06-21T05:16:14.3125601Z           "evidence": [
2026-06-21T05:16:14.3125696Z             {
2026-06-21T05:16:14.3125838Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T05:16:14.3125944Z               "line": 381
2026-06-21T05:16:14.3126034Z             }
2026-06-21T05:16:14.3126134Z           ]
2026-06-21T05:16:14.3126235Z         },
2026-06-21T05:16:14.3126335Z         "impl": {
2026-06-21T05:16:14.3126443Z           "complete": true,
2026-06-21T05:16:14.3126548Z           "evidence": [
2026-06-21T05:16:14.3126652Z             {
2026-06-21T05:16:14.3126807Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.3126918Z               "line": 100
2026-06-21T05:16:14.3127018Z             }
2026-06-21T05:16:14.3127118Z           ]
2026-06-21T05:16:14.3127223Z         },
2026-06-21T05:16:14.3127328Z         "int": {
2026-06-21T05:16:14.3127437Z           "complete": true,
2026-06-21T05:16:14.3127562Z           "evidence": [
2026-06-21T05:16:14.3127666Z             {
2026-06-21T05:16:14.3127809Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T05:16:14.3127929Z               "line": 1042
2026-06-21T05:16:14.3128024Z             }
2026-06-21T05:16:14.3128124Z           ]
2026-06-21T05:16:14.3128225Z         },
2026-06-21T05:16:14.3128333Z         "unit": {
2026-06-21T05:16:14.3128453Z           "complete": true,
2026-06-21T05:16:14.3128558Z           "evidence": [
2026-06-21T05:16:14.3128662Z             {
2026-06-21T05:16:14.3128802Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.3128916Z               "line": 2217
2026-06-21T05:16:14.3129100Z             }
2026-06-21T05:16:14.3129200Z           ]
2026-06-21T05:16:14.3129303Z         }
2026-06-21T05:16:14.3129407Z       }
2026-06-21T05:16:14.3129518Z     },
2026-06-21T05:16:14.3129618Z     {
2026-06-21T05:16:14.3129755Z       "id": "REQ-HAZARD-WAN-ORIGIN-AUTH",
2026-06-21T05:16:14.3130695Z       "title": "WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)",
2026-06-21T05:16:14.3130820Z       "requiredStages": [
2026-06-21T05:16:14.3130929Z         "doc",
2026-06-21T05:16:14.3131029Z         "impl",
2026-06-21T05:16:14.3131130Z         "unit"
2026-06-21T05:16:14.3131229Z       ],
2026-06-21T05:16:14.3131330Z       "stages": {
2026-06-21T05:16:14.3131440Z         "doc": {
2026-06-21T05:16:14.3131553Z           "complete": true,
2026-06-21T05:16:14.3131779Z           "evidence": [
2026-06-21T05:16:14.3131872Z             {
2026-06-21T05:16:14.3132001Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T05:16:14.3132111Z               "line": 366
2026-06-21T05:16:14.3132215Z             }
2026-06-21T05:16:14.3132320Z           ]
2026-06-21T05:16:14.3132430Z         },
2026-06-21T05:16:14.3132544Z         "impl": {
2026-06-21T05:16:14.3132650Z           "complete": true,
2026-06-21T05:16:14.3132759Z           "evidence": [
2026-06-21T05:16:14.3132859Z             {
2026-06-21T05:16:14.3133003Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-21T05:16:14.3133121Z               "line": 87
2026-06-21T05:16:14.3133221Z             },
2026-06-21T05:16:14.3133322Z             {
2026-06-21T05:16:14.3133460Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-21T05:16:14.3133570Z               "line": 105
2026-06-21T05:16:14.3133671Z             },
2026-06-21T05:16:14.3133774Z             {
2026-06-21T05:16:14.3133938Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-21T05:16:14.3134042Z               "line": 55
2026-06-21T05:16:14.3134150Z             },
2026-06-21T05:16:14.3134251Z             {
2026-06-21T05:16:14.3134396Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T05:16:14.3134501Z               "line": 31
2026-06-21T05:16:14.3134615Z             },
2026-06-21T05:16:14.3134716Z             {
2026-06-21T05:16:14.3134863Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T05:16:14.3134964Z               "line": 446
2026-06-21T05:16:14.3135068Z             },
2026-06-21T05:16:14.3135172Z             {
2026-06-21T05:16:14.3135311Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-21T05:16:14.3135425Z               "line": 95
2026-06-21T05:16:14.3135531Z             },
2026-06-21T05:16:14.3135636Z             {
2026-06-21T05:16:14.3135783Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T05:16:14.3135889Z               "line": 29
2026-06-21T05:16:14.3135993Z             },
2026-06-21T05:16:14.3136093Z             {
2026-06-21T05:16:14.3136238Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T05:16:14.3136351Z               "line": 104
2026-06-21T05:16:14.3136451Z             },
2026-06-21T05:16:14.3136557Z             {
2026-06-21T05:16:14.3136708Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.3136824Z               "line": 208
2026-06-21T05:16:14.3136932Z             },
2026-06-21T05:16:14.3137032Z             {
2026-06-21T05:16:14.3137184Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-21T05:16:14.3137291Z               "line": 28
2026-06-21T05:16:14.3137391Z             },
2026-06-21T05:16:14.3137483Z             {
2026-06-21T05:16:14.3137630Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-21T05:16:14.3137739Z               "line": 74
2026-06-21T05:16:14.3137831Z             },
2026-06-21T05:16:14.3137935Z             {
2026-06-21T05:16:14.3138083Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-21T05:16:14.3138203Z               "line": 32
2026-06-21T05:16:14.3138297Z             },
2026-06-21T05:16:14.3138403Z             {
2026-06-21T05:16:14.3138546Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T05:16:14.3138742Z               "line": 40
2026-06-21T05:16:14.3138851Z             },
2026-06-21T05:16:14.3139033Z             {
2026-06-21T05:16:14.3139170Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T05:16:14.3139280Z               "line": 184
2026-06-21T05:16:14.3139396Z             },
2026-06-21T05:16:14.3139499Z             {
2026-06-21T05:16:14.3139626Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-21T05:16:14.3139732Z               "line": 61
2026-06-21T05:16:14.3139835Z             },
2026-06-21T05:16:14.3139939Z             {
2026-06-21T05:16:14.3140068Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-21T05:16:14.3140287Z               "line": 131
2026-06-21T05:16:14.3140393Z             },
2026-06-21T05:16:14.3140498Z             {
2026-06-21T05:16:14.3140635Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-21T05:16:14.3140741Z               "line": 223
2026-06-21T05:16:14.3140845Z             },
2026-06-21T05:16:14.3140946Z             {
2026-06-21T05:16:14.3141084Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-21T05:16:14.3141188Z               "line": 37
2026-06-21T05:16:14.3141289Z             },
2026-06-21T05:16:14.3141394Z             {
2026-06-21T05:16:14.3141532Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-21T05:16:14.3141647Z               "line": 38
2026-06-21T05:16:14.3141751Z             },
2026-06-21T05:16:14.3141851Z             {
2026-06-21T05:16:14.3142000Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-21T05:16:14.3142099Z               "line": 36
2026-06-21T05:16:14.3142200Z             },
2026-06-21T05:16:14.3142296Z             {
2026-06-21T05:16:14.3142446Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-21T05:16:14.3142546Z               "line": 40
2026-06-21T05:16:14.3142638Z             }
2026-06-21T05:16:14.3142742Z           ]
2026-06-21T05:16:14.3142842Z         },
2026-06-21T05:16:14.3142948Z         "int": {
2026-06-21T05:16:14.3143062Z           "complete": false,
2026-06-21T05:16:14.3143176Z           "evidence": []
2026-06-21T05:16:14.3143277Z         },
2026-06-21T05:16:14.3143386Z         "unit": {
2026-06-21T05:16:14.3143505Z           "complete": true,
2026-06-21T05:16:14.3143610Z           "evidence": [
2026-06-21T05:16:14.3143715Z             {
2026-06-21T05:16:14.3143859Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-21T05:16:14.3143973Z               "line": 212
2026-06-21T05:16:14.3144077Z             },
2026-06-21T05:16:14.3144179Z             {
2026-06-21T05:16:14.3144329Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-21T05:16:14.3144435Z               "line": 136
2026-06-21T05:16:14.3144551Z             },
2026-06-21T05:16:14.3144644Z             {
2026-06-21T05:16:14.3144796Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-21T05:16:14.3144910Z               "line": 685
2026-06-21T05:16:14.3145013Z             },
2026-06-21T05:16:14.3145123Z             {
2026-06-21T05:16:14.3145267Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-21T05:16:14.3145370Z               "line": 224
2026-06-21T05:16:14.3145471Z             },
2026-06-21T05:16:14.3145581Z             {
2026-06-21T05:16:14.3145728Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-21T05:16:14.3145834Z               "line": 206
2026-06-21T05:16:14.3145948Z             },
2026-06-21T05:16:14.3146048Z             {
2026-06-21T05:16:14.3146191Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-21T05:16:14.3146300Z               "line": 112
2026-06-21T05:16:14.3146411Z             },
2026-06-21T05:16:14.3146515Z             {
2026-06-21T05:16:14.3146648Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-21T05:16:14.3146759Z               "line": 157
2026-06-21T05:16:14.3146858Z             },
2026-06-21T05:16:14.3146958Z             {
2026-06-21T05:16:14.3147094Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-21T05:16:14.3147206Z               "line": 215
2026-06-21T05:16:14.3147427Z             },
2026-06-21T05:16:14.3147530Z             {
2026-06-21T05:16:14.3147673Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-21T05:16:14.3147782Z               "line": 141
2026-06-21T05:16:14.3147875Z             },
2026-06-21T05:16:14.3147980Z             {
2026-06-21T05:16:14.3148119Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-21T05:16:14.3148218Z               "line": 162
2026-06-21T05:16:14.3148324Z             }
2026-06-21T05:16:14.3148424Z           ]
2026-06-21T05:16:14.3148528Z         }
2026-06-21T05:16:14.3148624Z       }
2026-06-21T05:16:14.3148725Z     },
2026-06-21T05:16:14.3148896Z     {
2026-06-21T05:16:14.3149125Z       "id": "REQ-HAZARD-WIN-PTY-PROGRAM-RESOLVE",
2026-06-21T05:16:14.3151010Z       "title": "Native-PTY spawn must resolve a bare program name with PATHEXT precedence and run a non-PE target through its interpreter: portable-pty's own `which` takes the FIRST PATH match — an extensionless shebang shim (e.g. a node CLI `ccs` shipped beside `ccs.cmd`) — and CreateProcessW then rejects the non-PE file with os error 193 ('not a valid Win32 application'); spt-term resolves the program itself (PATHEXT order prefers .EXE over .CMD; .cmd/.bat → cmd.exe /d /c, .ps1 → powershell -NoProfile -File) so a bare harness/shell [session.self] command actually launches on Windows. Unix is a passthrough (execve honours the shebang).",
2026-06-21T05:16:14.3151138Z       "requiredStages": [
2026-06-21T05:16:14.3151254Z         "doc",
2026-06-21T05:16:14.3151358Z         "impl",
2026-06-21T05:16:14.3151458Z         "unit",
2026-06-21T05:16:14.3151564Z         "int"
2026-06-21T05:16:14.3151687Z       ],
2026-06-21T05:16:14.3151791Z       "stages": {
2026-06-21T05:16:14.3151902Z         "doc": {
2026-06-21T05:16:14.3152025Z           "complete": true,
2026-06-21T05:16:14.3152125Z           "evidence": [
2026-06-21T05:16:14.3152231Z             {
2026-06-21T05:16:14.3152364Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T05:16:14.3152494Z               "line": 250
2026-06-21T05:16:14.3152598Z             }
2026-06-21T05:16:14.3152693Z           ]
2026-06-21T05:16:14.3152799Z         },
2026-06-21T05:16:14.3152903Z         "impl": {
2026-06-21T05:16:14.3153025Z           "complete": true,
2026-06-21T05:16:14.3153135Z           "evidence": [
2026-06-21T05:16:14.3153241Z             {
2026-06-21T05:16:14.3153378Z               "path": "crates/spt-term/src/pty.rs",
2026-06-21T05:16:14.3153493Z               "line": 135
2026-06-21T05:16:14.3153599Z             },
2026-06-21T05:16:14.3153697Z             {
2026-06-21T05:16:14.3153837Z               "path": "crates/spt-term/src/pty.rs",
2026-06-21T05:16:14.3153951Z               "line": 157
2026-06-21T05:16:14.3154056Z             }
2026-06-21T05:16:14.3154156Z           ]
2026-06-21T05:16:14.3154246Z         },
2026-06-21T05:16:14.3154346Z         "int": {
2026-06-21T05:16:14.3154457Z           "complete": true,
2026-06-21T05:16:14.3154570Z           "evidence": [
2026-06-21T05:16:14.3154680Z             {
2026-06-21T05:16:14.3154834Z               "path": "crates/spt-term/tests/winspawn.rs",
2026-06-21T05:16:14.3154938Z               "line": 15
2026-06-21T05:16:14.3155053Z             }
2026-06-21T05:16:14.3155158Z           ]
2026-06-21T05:16:14.3155256Z         },
2026-06-21T05:16:14.3155361Z         "unit": {
2026-06-21T05:16:14.3155475Z           "complete": true,
2026-06-21T05:16:14.3155583Z           "evidence": [
2026-06-21T05:16:14.3155683Z             {
2026-06-21T05:16:14.3155823Z               "path": "crates/spt-term/src/winprog.rs",
2026-06-21T05:16:14.3155935Z               "line": 233
2026-06-21T05:16:14.3156041Z             }
2026-06-21T05:16:14.3156151Z           ]
2026-06-21T05:16:14.3156259Z         }
2026-06-21T05:16:14.3156375Z       }
2026-06-21T05:16:14.3156485Z     },
2026-06-21T05:16:14.3156598Z     {
2026-06-21T05:16:14.3156728Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-21T05:16:14.3156923Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-21T05:16:14.3157171Z       "requiredStages": [
2026-06-21T05:16:14.3157266Z         "impl",
2026-06-21T05:16:14.3157372Z         "unit"
2026-06-21T05:16:14.3157476Z       ],
2026-06-21T05:16:14.3157591Z       "stages": {
2026-06-21T05:16:14.3157701Z         "doc": {
2026-06-21T05:16:14.3157815Z           "complete": false,
2026-06-21T05:16:14.3157935Z           "evidence": []
2026-06-21T05:16:14.3158039Z         },
2026-06-21T05:16:14.3158147Z         "impl": {
2026-06-21T05:16:14.3158247Z           "complete": true,
2026-06-21T05:16:14.3158375Z           "evidence": [
2026-06-21T05:16:14.3158483Z             {
2026-06-21T05:16:14.3158755Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T05:16:14.3158874Z               "line": 95
2026-06-21T05:16:14.3159061Z             },
2026-06-21T05:16:14.3159174Z             {
2026-06-21T05:16:14.3159318Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.3159436Z               "line": 117
2026-06-21T05:16:14.3159571Z             }
2026-06-21T05:16:14.3159685Z           ]
2026-06-21T05:16:14.3159790Z         },
2026-06-21T05:16:14.3159896Z         "int": {
2026-06-21T05:16:14.3160023Z           "complete": false,
2026-06-21T05:16:14.3160138Z           "evidence": []
2026-06-21T05:16:14.3160258Z         },
2026-06-21T05:16:14.3160371Z         "unit": {
2026-06-21T05:16:14.3160496Z           "complete": true,
2026-06-21T05:16:14.3160615Z           "evidence": [
2026-06-21T05:16:14.3160719Z             {
2026-06-21T05:16:14.3160871Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T05:16:14.3160983Z               "line": 250
2026-06-21T05:16:14.3161097Z             },
2026-06-21T05:16:14.3161218Z             {
2026-06-21T05:16:14.3161365Z               "path": "crates/spt-store/src/proc.rs",
2026-06-21T05:16:14.3164430Z               "line": 412
2026-06-21T05:16:14.3164563Z             },
2026-06-21T05:16:14.3164679Z             {
2026-06-21T05:16:14.3164821Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.3164950Z               "line": 611
2026-06-21T05:16:14.3165055Z             },
2026-06-21T05:16:14.3165164Z             {
2026-06-21T05:16:14.3165323Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.3165440Z               "line": 669
2026-06-21T05:16:14.3165550Z             }
2026-06-21T05:16:14.3165652Z           ]
2026-06-21T05:16:14.3165765Z         }
2026-06-21T05:16:14.3165869Z       }
2026-06-21T05:16:14.3165969Z     },
2026-06-21T05:16:14.3166072Z     {
2026-06-21T05:16:14.3166200Z       "id": "REQ-HAZARD-WMI-DAEMON-WINDOW",
2026-06-21T05:16:14.3168807Z       "title": "`spt daemon start` launches the daemon with NO visible console window. REGRESSION (v0.12.1 L1.5): the WMI job-neutral launch (spawn_daemon_via_wmi) set CREATE_NO_WINDOW on the launching powershell but NOT on the Win32_Process.Create call — Win32_Process.Create does not inherit it, so the spawned cmd.exe env-forwarding wrapper popped a console window on every cold-start (violating REQ-INSTALL-10's v0.7.4 no-persistent-window invariant; the old detached_no_inherit path set DETACHED_PROCESS|CREATE_NO_WINDOW). FIX: pass a Win32_ProcessStartup with CreateFlags=DETACHED_PROCESS (0x8 — no console so no window; CREATE_NO_WINDOW 0x08000000 is NOT a valid Win32_ProcessStartup flag → ReturnValue 21 invalid-param, which is why the naive port fails) + ShowWindow=SW_HIDE(0) belt, via the ProcessStartupInformation argument. (v0.12.2)",
2026-06-21T05:16:14.3169033Z       "requiredStages": [
2026-06-21T05:16:14.3169130Z         "impl",
2026-06-21T05:16:14.3169239Z         "unit",
2026-06-21T05:16:14.3169343Z         "int"
2026-06-21T05:16:14.3169464Z       ],
2026-06-21T05:16:14.3169563Z       "stages": {
2026-06-21T05:16:14.3169667Z         "doc": {
2026-06-21T05:16:14.3169774Z           "complete": false,
2026-06-21T05:16:14.3169878Z           "evidence": []
2026-06-21T05:16:14.3169992Z         },
2026-06-21T05:16:14.3170098Z         "impl": {
2026-06-21T05:16:14.3170212Z           "complete": true,
2026-06-21T05:16:14.3170475Z           "evidence": [
2026-06-21T05:16:14.3170578Z             {
2026-06-21T05:16:14.3170728Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.3170832Z               "line": 925
2026-06-21T05:16:14.3170936Z             },
2026-06-21T05:16:14.3171043Z             {
2026-06-21T05:16:14.3171184Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.3171302Z               "line": 994
2026-06-21T05:16:14.3171403Z             }
2026-06-21T05:16:14.3171506Z           ]
2026-06-21T05:16:14.3171596Z         },
2026-06-21T05:16:14.3171701Z         "int": {
2026-06-21T05:16:14.3171905Z           "complete": true,
2026-06-21T05:16:14.3172011Z           "evidence": [
2026-06-21T05:16:14.3172121Z             {
2026-06-21T05:16:14.3172268Z               "path": "crates/spt/tests/job_escape_e2e.rs",
2026-06-21T05:16:14.3172379Z               "line": 187
2026-06-21T05:16:14.3172483Z             },
2026-06-21T05:16:14.3172597Z             {
2026-06-21T05:16:14.3172741Z               "path": "crates/spt/tests/job_escape_e2e.rs",
2026-06-21T05:16:14.3172840Z               "line": 348
2026-06-21T05:16:14.3172945Z             }
2026-06-21T05:16:14.3173037Z           ]
2026-06-21T05:16:14.3173146Z         },
2026-06-21T05:16:14.3173241Z         "unit": {
2026-06-21T05:16:14.3173357Z           "complete": true,
2026-06-21T05:16:14.3173465Z           "evidence": [
2026-06-21T05:16:14.3173565Z             {
2026-06-21T05:16:14.3173709Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.3173823Z               "line": 1206
2026-06-21T05:16:14.3173929Z             },
2026-06-21T05:16:14.3174037Z             {
2026-06-21T05:16:14.3174165Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3174270Z               "line": 8116
2026-06-21T05:16:14.3174366Z             }
2026-06-21T05:16:14.3174470Z           ]
2026-06-21T05:16:14.3174565Z         }
2026-06-21T05:16:14.3174676Z       }
2026-06-21T05:16:14.3174775Z     },
2026-06-21T05:16:14.3174880Z     {
2026-06-21T05:16:14.3175009Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-21T05:16:14.3175209Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-21T05:16:14.3175329Z       "requiredStages": [
2026-06-21T05:16:14.3175433Z         "impl",
2026-06-21T05:16:14.3175539Z         "unit"
2026-06-21T05:16:14.3175639Z       ],
2026-06-21T05:16:14.3175743Z       "stages": {
2026-06-21T05:16:14.3175849Z         "doc": {
2026-06-21T05:16:14.3175954Z           "complete": false,
2026-06-21T05:16:14.3176067Z           "evidence": []
2026-06-21T05:16:14.3176168Z         },
2026-06-21T05:16:14.3176283Z         "impl": {
2026-06-21T05:16:14.3176395Z           "complete": true,
2026-06-21T05:16:14.3176510Z           "evidence": [
2026-06-21T05:16:14.3176614Z             {
2026-06-21T05:16:14.3176750Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3176865Z               "line": 262
2026-06-21T05:16:14.3176965Z             },
2026-06-21T05:16:14.3177079Z             {
2026-06-21T05:16:14.3177214Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3177323Z               "line": 307
2026-06-21T05:16:14.3177433Z             },
2026-06-21T05:16:14.3177519Z             {
2026-06-21T05:16:14.3177657Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3177757Z               "line": 319
2026-06-21T05:16:14.3177862Z             }
2026-06-21T05:16:14.3177957Z           ]
2026-06-21T05:16:14.3178062Z         },
2026-06-21T05:16:14.3178172Z         "int": {
2026-06-21T05:16:14.3178272Z           "complete": false,
2026-06-21T05:16:14.3178382Z           "evidence": []
2026-06-21T05:16:14.3178492Z         },
2026-06-21T05:16:14.3178601Z         "unit": {
2026-06-21T05:16:14.3178702Z           "complete": true,
2026-06-21T05:16:14.3178807Z           "evidence": [
2026-06-21T05:16:14.3178915Z             {
2026-06-21T05:16:14.3179122Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3179338Z               "line": 455
2026-06-21T05:16:14.3179444Z             },
2026-06-21T05:16:14.3179552Z             {
2026-06-21T05:16:14.3179699Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3179829Z               "line": 499
2026-06-21T05:16:14.3179932Z             }
2026-06-21T05:16:14.3180033Z           ]
2026-06-21T05:16:14.3180138Z         }
2026-06-21T05:16:14.3180237Z       }
2026-06-21T05:16:14.3180339Z     },
2026-06-21T05:16:14.3180439Z     {
2026-06-21T05:16:14.3180547Z       "id": "REQ-HOST-RUN-1",
2026-06-21T05:16:14.3182991Z       "title": "spt-hosted harness bringup: `spt endpoint run` spawns an adapter's `[session.self]` command template into a broker-held PTY (the spawn-session seam, brain.rs spawn_session_pid — same broker path shellhost.rs launch_shell_brokered_in uses for shells, now for kind=\"harness\" self-role), registers the perch under the given endpoint id, returns the id. Reverses today's harness-hosted-only launch (external launcher → `api bind`). Non-interactive flag set (--adapter <a[:profile]> --id <id> --create --resume <session> --attach|--start|--view) covers every terminal action of the W2 interactive picker so shortcuts (cc-<id>) bake fully non-interactive launches; composite adapter:profile resolves via registry::resolve_option leaf-replace overlay.",
2026-06-21T05:16:14.3183215Z       "requiredStages": [
2026-06-21T05:16:14.3183319Z         "impl",
2026-06-21T05:16:14.3183428Z         "unit",
2026-06-21T05:16:14.3183525Z         "int"
2026-06-21T05:16:14.3183630Z       ],
2026-06-21T05:16:14.3183734Z       "stages": {
2026-06-21T05:16:14.3183840Z         "doc": {
2026-06-21T05:16:14.3183968Z           "complete": false,
2026-06-21T05:16:14.3184068Z           "evidence": []
2026-06-21T05:16:14.3184169Z         },
2026-06-21T05:16:14.3184274Z         "impl": {
2026-06-21T05:16:14.3184378Z           "complete": true,
2026-06-21T05:16:14.3184484Z           "evidence": [
2026-06-21T05:16:14.3184584Z             {
2026-06-21T05:16:14.3184767Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T05:16:14.3184883Z               "line": 30
2026-06-21T05:16:14.3184982Z             },
2026-06-21T05:16:14.3185082Z             {
2026-06-21T05:16:14.3185226Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T05:16:14.3185340Z               "line": 76
2026-06-21T05:16:14.3185436Z             },
2026-06-21T05:16:14.3185536Z             {
2026-06-21T05:16:14.3185688Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T05:16:14.3185799Z               "line": 181
2026-06-21T05:16:14.3185903Z             },
2026-06-21T05:16:14.3186003Z             {
2026-06-21T05:16:14.3186133Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3186241Z               "line": 1266
2026-06-21T05:16:14.3186342Z             }
2026-06-21T05:16:14.3186443Z           ]
2026-06-21T05:16:14.3186551Z         },
2026-06-21T05:16:14.3186651Z         "int": {
2026-06-21T05:16:14.3186768Z           "complete": true,
2026-06-21T05:16:14.3186889Z           "evidence": [
2026-06-21T05:16:14.3186984Z             {
2026-06-21T05:16:14.3187132Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T05:16:14.3187240Z               "line": 285
2026-06-21T05:16:14.3187344Z             }
2026-06-21T05:16:14.3187430Z           ]
2026-06-21T05:16:14.3187535Z         },
2026-06-21T05:16:14.3187644Z         "unit": {
2026-06-21T05:16:14.3187750Z           "complete": true,
2026-06-21T05:16:14.3187859Z           "evidence": [
2026-06-21T05:16:14.3187963Z             {
2026-06-21T05:16:14.3188112Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T05:16:14.3188231Z               "line": 229
2026-06-21T05:16:14.3188337Z             },
2026-06-21T05:16:14.3188441Z             {
2026-06-21T05:16:14.3188584Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T05:16:14.3188690Z               "line": 296
2026-06-21T05:16:14.3188789Z             },
2026-06-21T05:16:14.3189052Z             {
2026-06-21T05:16:14.3189204Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T05:16:14.3189315Z               "line": 419
2026-06-21T05:16:14.3189418Z             }
2026-06-21T05:16:14.3189519Z           ]
2026-06-21T05:16:14.3189625Z         }
2026-06-21T05:16:14.3189719Z       }
2026-06-21T05:16:14.3189827Z     },
2026-06-21T05:16:14.3189918Z     {
2026-06-21T05:16:14.3190032Z       "id": "REQ-HOST-RUN-2",
2026-06-21T05:16:14.3191794Z       "title": "Project-scoped working directory for spt-hosted bringup: `spt endpoint run` lands the broker-spawned harness PTY in the user's PROJECT cwd, not the daemon's, via an additive `SpawnReq.cwd` field carried through the broker PTY spawn (portable-pty CommandBuilder cwd). N-1-safe wire change (additive, defaulted). Required because the consumer (Claude Code) is project-scoped: broker-inherited cwd = the daemon's cwd = the wrong `.claude`, wrong session history, wrong digest source; `cc <id>` at a project root MUST land the harness in that project. W1 ships broker-inherited cwd as a bringup-proof shortcut only; this REQ must land before the M12 gate (doyle, 2026-06-14).",
2026-06-21T05:16:14.3192023Z       "requiredStages": [
2026-06-21T05:16:14.3192129Z         "impl",
2026-06-21T05:16:14.3192244Z         "unit",
2026-06-21T05:16:14.3192338Z         "int"
2026-06-21T05:16:14.3192442Z       ],
2026-06-21T05:16:14.3192547Z       "stages": {
2026-06-21T05:16:14.3192659Z         "doc": {
2026-06-21T05:16:14.3192768Z           "complete": false,
2026-06-21T05:16:14.3192869Z           "evidence": []
2026-06-21T05:16:14.3192974Z         },
2026-06-21T05:16:14.3193083Z         "impl": {
2026-06-21T05:16:14.3193204Z           "complete": true,
2026-06-21T05:16:14.3193308Z           "evidence": [
2026-06-21T05:16:14.3193412Z             {
2026-06-21T05:16:14.3193560Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T05:16:14.3193669Z               "line": 182
2026-06-21T05:16:14.3193776Z             },
2026-06-21T05:16:14.3193880Z             {
2026-06-21T05:16:14.3194018Z               "path": "crates/spt-term/src/pty.rs",
2026-06-21T05:16:14.3194124Z               "line": 113
2026-06-21T05:16:14.3194232Z             }
2026-06-21T05:16:14.3194332Z           ]
2026-06-21T05:16:14.3194434Z         },
2026-06-21T05:16:14.3194533Z         "int": {
2026-06-21T05:16:14.3194647Z           "complete": true,
2026-06-21T05:16:14.3194758Z           "evidence": [
2026-06-21T05:16:14.3194853Z             {
2026-06-21T05:16:14.3195005Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T05:16:14.3195116Z               "line": 572
2026-06-21T05:16:14.3195223Z             }
2026-06-21T05:16:14.3195337Z           ]
2026-06-21T05:16:14.3195429Z         },
2026-06-21T05:16:14.3195533Z         "unit": {
2026-06-21T05:16:14.3195647Z           "complete": true,
2026-06-21T05:16:14.3195758Z           "evidence": [
2026-06-21T05:16:14.3195853Z             {
2026-06-21T05:16:14.3195996Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-21T05:16:14.3196115Z               "line": 86
2026-06-21T05:16:14.3196214Z             }
2026-06-21T05:16:14.3196315Z           ]
2026-06-21T05:16:14.3196416Z         }
2026-06-21T05:16:14.3196520Z       }
2026-06-21T05:16:14.3196615Z     },
2026-06-21T05:16:14.3196722Z     {
2026-06-21T05:16:14.3196844Z       "id": "REQ-INFRA-1",
2026-06-21T05:16:14.3197046Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-21T05:16:14.3197164Z       "requiredStages": [],
2026-06-21T05:16:14.3197269Z       "stages": {
2026-06-21T05:16:14.3197379Z         "doc": {
2026-06-21T05:16:14.3197487Z           "complete": false,
2026-06-21T05:16:14.3197597Z           "evidence": []
2026-06-21T05:16:14.3197706Z         },
2026-06-21T05:16:14.3197809Z         "impl": {
2026-06-21T05:16:14.3197923Z           "complete": false,
2026-06-21T05:16:14.3198029Z           "evidence": []
2026-06-21T05:16:14.3198138Z         },
2026-06-21T05:16:14.3198243Z         "int": {
2026-06-21T05:16:14.3198452Z           "complete": false,
2026-06-21T05:16:14.3198572Z           "evidence": []
2026-06-21T05:16:14.3198668Z         },
2026-06-21T05:16:14.3198772Z         "unit": {
2026-06-21T05:16:14.3198878Z           "complete": false,
2026-06-21T05:16:14.3199068Z           "evidence": []
2026-06-21T05:16:14.3199163Z         }
2026-06-21T05:16:14.3199269Z       }
2026-06-21T05:16:14.3199364Z     },
2026-06-21T05:16:14.3199464Z     {
2026-06-21T05:16:14.3199589Z       "id": "REQ-INST-1",
2026-06-21T05:16:14.3199774Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-21T05:16:14.3199890Z       "requiredStages": [],
2026-06-21T05:16:14.3200098Z       "stages": {
2026-06-21T05:16:14.3200204Z         "doc": {
2026-06-21T05:16:14.3200317Z           "complete": false,
2026-06-21T05:16:14.3200420Z           "evidence": []
2026-06-21T05:16:14.3200521Z         },
2026-06-21T05:16:14.3200624Z         "impl": {
2026-06-21T05:16:14.3200737Z           "complete": false,
2026-06-21T05:16:14.3200853Z           "evidence": []
2026-06-21T05:16:14.3200958Z         },
2026-06-21T05:16:14.3201057Z         "int": {
2026-06-21T05:16:14.3201168Z           "complete": false,
2026-06-21T05:16:14.3201273Z           "evidence": []
2026-06-21T05:16:14.3201363Z         },
2026-06-21T05:16:14.3201469Z         "unit": {
2026-06-21T05:16:14.3201564Z           "complete": false,
2026-06-21T05:16:14.3201677Z           "evidence": []
2026-06-21T05:16:14.3201773Z         }
2026-06-21T05:16:14.3201873Z       }
2026-06-21T05:16:14.3201978Z     },
2026-06-21T05:16:14.3202064Z     {
2026-06-21T05:16:14.3202179Z       "id": "REQ-INST-10",
2026-06-21T05:16:14.3202413Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-21T05:16:14.3202536Z       "requiredStages": [
2026-06-21T05:16:14.3202641Z         "impl",
2026-06-21T05:16:14.3202742Z         "unit"
2026-06-21T05:16:14.3202846Z       ],
2026-06-21T05:16:14.3202949Z       "stages": {
2026-06-21T05:16:14.3203059Z         "doc": {
2026-06-21T05:16:14.3203168Z           "complete": false,
2026-06-21T05:16:14.3203276Z           "evidence": []
2026-06-21T05:16:14.3203381Z         },
2026-06-21T05:16:14.3203487Z         "impl": {
2026-06-21T05:16:14.3203590Z           "complete": true,
2026-06-21T05:16:14.3203701Z           "evidence": [
2026-06-21T05:16:14.3203806Z             {
2026-06-21T05:16:14.3203958Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3204073Z               "line": 648
2026-06-21T05:16:14.3204183Z             },
2026-06-21T05:16:14.3204282Z             {
2026-06-21T05:16:14.3204431Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3204545Z               "line": 725
2026-06-21T05:16:14.3204655Z             },
2026-06-21T05:16:14.3204755Z             {
2026-06-21T05:16:14.3204892Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-21T05:16:14.3204998Z               "line": 13
2026-06-21T05:16:14.3205103Z             },
2026-06-21T05:16:14.3205212Z             {
2026-06-21T05:16:14.3205337Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-21T05:16:14.3205450Z               "line": 67
2026-06-21T05:16:14.3205541Z             },
2026-06-21T05:16:14.3205642Z             {
2026-06-21T05:16:14.3205779Z               "path": "crates/spt/src/wansend.rs",
2026-06-21T05:16:14.3205883Z               "line": 18
2026-06-21T05:16:14.3205994Z             },
2026-06-21T05:16:14.3206089Z             {
2026-06-21T05:16:14.3206226Z               "path": "crates/spt/src/wansend.rs",
2026-06-21T05:16:14.3206342Z               "line": 444
2026-06-21T05:16:14.3206446Z             }
2026-06-21T05:16:14.3206551Z           ]
2026-06-21T05:16:14.3206652Z         },
2026-06-21T05:16:14.3206761Z         "int": {
2026-06-21T05:16:14.3206875Z           "complete": false,
2026-06-21T05:16:14.3206986Z           "evidence": []
2026-06-21T05:16:14.3207076Z         },
2026-06-21T05:16:14.3207185Z         "unit": {
2026-06-21T05:16:14.3207300Z           "complete": true,
2026-06-21T05:16:14.3207510Z           "evidence": [
2026-06-21T05:16:14.3207620Z             {
2026-06-21T05:16:14.3207767Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3207868Z               "line": 932
2026-06-21T05:16:14.3207967Z             },
2026-06-21T05:16:14.3208071Z             {
2026-06-21T05:16:14.3208224Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3208336Z               "line": 1309
2026-06-21T05:16:14.3208445Z             },
2026-06-21T05:16:14.3208551Z             {
2026-06-21T05:16:14.3208684Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3208871Z               "line": 1320
2026-06-21T05:16:14.3209074Z             },
2026-06-21T05:16:14.3209181Z             {
2026-06-21T05:16:14.3209322Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3209423Z               "line": 1336
2026-06-21T05:16:14.3209528Z             },
2026-06-21T05:16:14.3209637Z             {
2026-06-21T05:16:14.3209791Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3209900Z               "line": 1352
2026-06-21T05:16:14.3210005Z             },
2026-06-21T05:16:14.3210106Z             {
2026-06-21T05:16:14.3210247Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3210348Z               "line": 1374
2026-06-21T05:16:14.3210455Z             },
2026-06-21T05:16:14.3210567Z             {
2026-06-21T05:16:14.3210712Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3210816Z               "line": 1679
2026-06-21T05:16:14.3210915Z             },
2026-06-21T05:16:14.3211029Z             {
2026-06-21T05:16:14.3211161Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-21T05:16:14.3211265Z               "line": 130
2026-06-21T05:16:14.3211370Z             },
2026-06-21T05:16:14.3211471Z             {
2026-06-21T05:16:14.3211603Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-21T05:16:14.3211719Z               "line": 167
2026-06-21T05:16:14.3211833Z             },
2026-06-21T05:16:14.3211923Z             {
2026-06-21T05:16:14.3212062Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-21T05:16:14.3212171Z               "line": 175
2026-06-21T05:16:14.3212266Z             },
2026-06-21T05:16:14.3212372Z             {
2026-06-21T05:16:14.3212505Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-21T05:16:14.3212609Z               "line": 183
2026-06-21T05:16:14.3212710Z             },
2026-06-21T05:16:14.3212819Z             {
2026-06-21T05:16:14.3212954Z               "path": "crates/spt/src/wansend.rs",
2026-06-21T05:16:14.3213063Z               "line": 896
2026-06-21T05:16:14.3213167Z             }
2026-06-21T05:16:14.3213264Z           ]
2026-06-21T05:16:14.3213368Z         }
2026-06-21T05:16:14.3213468Z       }
2026-06-21T05:16:14.3213562Z     },
2026-06-21T05:16:14.3213671Z     {
2026-06-21T05:16:14.3213779Z       "id": "REQ-INST-11",
2026-06-21T05:16:14.3214019Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-21T05:16:14.3214128Z       "requiredStages": [
2026-06-21T05:16:14.3214232Z         "impl",
2026-06-21T05:16:14.3214338Z         "unit"
2026-06-21T05:16:14.3214447Z       ],
2026-06-21T05:16:14.3214556Z       "stages": {
2026-06-21T05:16:14.3214657Z         "doc": {
2026-06-21T05:16:14.3214776Z           "complete": false,
2026-06-21T05:16:14.3214881Z           "evidence": []
2026-06-21T05:16:14.3214986Z         },
2026-06-21T05:16:14.3215086Z         "impl": {
2026-06-21T05:16:14.3215200Z           "complete": true,
2026-06-21T05:16:14.3215305Z           "evidence": [
2026-06-21T05:16:14.3215410Z             {
2026-06-21T05:16:14.3215564Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3215672Z               "line": 514
2026-06-21T05:16:14.3215777Z             },
2026-06-21T05:16:14.3215879Z             {
2026-06-21T05:16:14.3216039Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T05:16:14.3216358Z               "line": 297
2026-06-21T05:16:14.3216457Z             },
2026-06-21T05:16:14.3216559Z             {
2026-06-21T05:16:14.3216701Z               "path": "crates/spt-store/src/rename.rs",
2026-06-21T05:16:14.3216811Z               "line": 59
2026-06-21T05:16:14.3216921Z             },
2026-06-21T05:16:14.3217020Z             {
2026-06-21T05:16:14.3217150Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3217254Z               "line": 5291
2026-06-21T05:16:14.3217358Z             },
2026-06-21T05:16:14.3217455Z             {
2026-06-21T05:16:14.3217588Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3217813Z               "line": 7137
2026-06-21T05:16:14.3217912Z             }
2026-06-21T05:16:14.3218012Z           ]
2026-06-21T05:16:14.3218109Z         },
2026-06-21T05:16:14.3218213Z         "int": {
2026-06-21T05:16:14.3218327Z           "complete": false,
2026-06-21T05:16:14.3218438Z           "evidence": []
2026-06-21T05:16:14.3218551Z         },
2026-06-21T05:16:14.3218651Z         "unit": {
2026-06-21T05:16:14.3218760Z           "complete": true,
2026-06-21T05:16:14.3218868Z           "evidence": [
2026-06-21T05:16:14.3219063Z             {
2026-06-21T05:16:14.3219202Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3219311Z               "line": 1479
2026-06-21T05:16:14.3219416Z             },
2026-06-21T05:16:14.3219521Z             {
2026-06-21T05:16:14.3219668Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3219774Z               "line": 1512
2026-06-21T05:16:14.3219869Z             },
2026-06-21T05:16:14.3219978Z             {
2026-06-21T05:16:14.3220131Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T05:16:14.3220240Z               "line": 527
2026-06-21T05:16:14.3220341Z             },
2026-06-21T05:16:14.3220441Z             {
2026-06-21T05:16:14.3220579Z               "path": "crates/spt-store/src/rename.rs",
2026-06-21T05:16:14.3220690Z               "line": 160
2026-06-21T05:16:14.3220789Z             },
2026-06-21T05:16:14.3220889Z             {
2026-06-21T05:16:14.3221029Z               "path": "crates/spt-store/src/rename.rs",
2026-06-21T05:16:14.3221136Z               "line": 190
2026-06-21T05:16:14.3221237Z             },
2026-06-21T05:16:14.3221334Z             {
2026-06-21T05:16:14.3221475Z               "path": "crates/spt-store/src/rename.rs",
2026-06-21T05:16:14.3221584Z               "line": 225
2026-06-21T05:16:14.3221689Z             },
2026-06-21T05:16:14.3221796Z             {
2026-06-21T05:16:14.3221916Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3222036Z               "line": 7994
2026-06-21T05:16:14.3222130Z             }
2026-06-21T05:16:14.3222235Z           ]
2026-06-21T05:16:14.3222336Z         }
2026-06-21T05:16:14.3222430Z       }
2026-06-21T05:16:14.3222535Z     },
2026-06-21T05:16:14.3222632Z     {
2026-06-21T05:16:14.3222745Z       "id": "REQ-INST-12",
2026-06-21T05:16:14.3223060Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-21T05:16:14.3223165Z       "requiredStages": [
2026-06-21T05:16:14.3223271Z         "impl",
2026-06-21T05:16:14.3223379Z         "unit"
2026-06-21T05:16:14.3223475Z       ],
2026-06-21T05:16:14.3223581Z       "stages": {
2026-06-21T05:16:14.3223689Z         "doc": {
2026-06-21T05:16:14.3223794Z           "complete": false,
2026-06-21T05:16:14.3223905Z           "evidence": []
2026-06-21T05:16:14.3224008Z         },
2026-06-21T05:16:14.3224117Z         "impl": {
2026-06-21T05:16:14.3224232Z           "complete": true,
2026-06-21T05:16:14.3224344Z           "evidence": [
2026-06-21T05:16:14.3224448Z             {
2026-06-21T05:16:14.3224593Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3224706Z               "line": 566
2026-06-21T05:16:14.3224802Z             },
2026-06-21T05:16:14.3224912Z             {
2026-06-21T05:16:14.3225170Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3225284Z               "line": 659
2026-06-21T05:16:14.3225383Z             },
2026-06-21T05:16:14.3225480Z             {
2026-06-21T05:16:14.3225627Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3225736Z               "line": 739
2026-06-21T05:16:14.3225847Z             },
2026-06-21T05:16:14.3225951Z             {
2026-06-21T05:16:14.3226080Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T05:16:14.3226194Z               "line": 96
2026-06-21T05:16:14.3226295Z             },
2026-06-21T05:16:14.3226400Z             {
2026-06-21T05:16:14.3226633Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T05:16:14.3226749Z               "line": 269
2026-06-21T05:16:14.3226857Z             },
2026-06-21T05:16:14.3226956Z             {
2026-06-21T05:16:14.3227099Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-21T05:16:14.3227205Z               "line": 148
2026-06-21T05:16:14.3227308Z             }
2026-06-21T05:16:14.3227414Z           ]
2026-06-21T05:16:14.3227510Z         },
2026-06-21T05:16:14.3227613Z         "int": {
2026-06-21T05:16:14.3227729Z           "complete": false,
2026-06-21T05:16:14.3227849Z           "evidence": []
2026-06-21T05:16:14.3227947Z         },
2026-06-21T05:16:14.3228053Z         "unit": {
2026-06-21T05:16:14.3228157Z           "complete": true,
2026-06-21T05:16:14.3228272Z           "evidence": [
2026-06-21T05:16:14.3228378Z             {
2026-06-21T05:16:14.3228525Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3228635Z               "line": 1554
2026-06-21T05:16:14.3228735Z             },
2026-06-21T05:16:14.3228844Z             {
2026-06-21T05:16:14.3229069Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3229172Z               "line": 1577
2026-06-21T05:16:14.3229277Z             },
2026-06-21T05:16:14.3229377Z             {
2026-06-21T05:16:14.3229537Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3229647Z               "line": 1614
2026-06-21T05:16:14.3229753Z             },
2026-06-21T05:16:14.3229847Z             {
2026-06-21T05:16:14.3229971Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T05:16:14.3230081Z               "line": 457
2026-06-21T05:16:14.3230180Z             },
2026-06-21T05:16:14.3230282Z             {
2026-06-21T05:16:14.3230415Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-21T05:16:14.3230529Z               "line": 185
2026-06-21T05:16:14.3230635Z             },
2026-06-21T05:16:14.3230730Z             {
2026-06-21T05:16:14.3230882Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-21T05:16:14.3230992Z               "line": 206
2026-06-21T05:16:14.3231101Z             },
2026-06-21T05:16:14.3231202Z             {
2026-06-21T05:16:14.3231344Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-21T05:16:14.3231458Z               "line": 232
2026-06-21T05:16:14.3231565Z             }
2026-06-21T05:16:14.3231673Z           ]
2026-06-21T05:16:14.3231773Z         }
2026-06-21T05:16:14.3231880Z       }
2026-06-21T05:16:14.3231979Z     },
2026-06-21T05:16:14.3232087Z     {
2026-06-21T05:16:14.3232201Z       "id": "REQ-INST-13",
2026-06-21T05:16:14.3232394Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-21T05:16:14.3232514Z       "requiredStages": [
2026-06-21T05:16:14.3232615Z         "impl",
2026-06-21T05:16:14.3232719Z         "unit"
2026-06-21T05:16:14.3232819Z       ],
2026-06-21T05:16:14.3232929Z       "stages": {
2026-06-21T05:16:14.3233038Z         "doc": {
2026-06-21T05:16:14.3233163Z           "complete": false,
2026-06-21T05:16:14.3233278Z           "evidence": []
2026-06-21T05:16:14.3233377Z         },
2026-06-21T05:16:14.3233478Z         "impl": {
2026-06-21T05:16:14.3233591Z           "complete": true,
2026-06-21T05:16:14.3233701Z           "evidence": [
2026-06-21T05:16:14.3233911Z             {
2026-06-21T05:16:14.3234049Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T05:16:14.3234160Z               "line": 100
2026-06-21T05:16:14.3234263Z             },
2026-06-21T05:16:14.3234369Z             {
2026-06-21T05:16:14.3234512Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-21T05:16:14.3234626Z               "line": 171
2026-06-21T05:16:14.3234725Z             }
2026-06-21T05:16:14.3234829Z           ]
2026-06-21T05:16:14.3234933Z         },
2026-06-21T05:16:14.3235038Z         "int": {
2026-06-21T05:16:14.3235148Z           "complete": false,
2026-06-21T05:16:14.3235252Z           "evidence": []
2026-06-21T05:16:14.3235458Z         },
2026-06-21T05:16:14.3235562Z         "unit": {
2026-06-21T05:16:14.3235672Z           "complete": true,
2026-06-21T05:16:14.3235782Z           "evidence": [
2026-06-21T05:16:14.3235882Z             {
2026-06-21T05:16:14.3236031Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-21T05:16:14.3236144Z               "line": 261
2026-06-21T05:16:14.3236249Z             },
2026-06-21T05:16:14.3236360Z             {
2026-06-21T05:16:14.3236502Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-21T05:16:14.3236611Z               "line": 279
2026-06-21T05:16:14.3236712Z             }
2026-06-21T05:16:14.3236816Z           ]
2026-06-21T05:16:14.3236907Z         }
2026-06-21T05:16:14.3237009Z       }
2026-06-21T05:16:14.3237111Z     },
2026-06-21T05:16:14.3237208Z     {
2026-06-21T05:16:14.3237323Z       "id": "REQ-INST-14",
2026-06-21T05:16:14.3237717Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-21T05:16:14.3237840Z       "requiredStages": [
2026-06-21T05:16:14.3237946Z         "doc",
2026-06-21T05:16:14.3238046Z         "impl",
2026-06-21T05:16:14.3238160Z         "unit"
2026-06-21T05:16:14.3238261Z       ],
2026-06-21T05:16:14.3238366Z       "stages": {
2026-06-21T05:16:14.3238465Z         "doc": {
2026-06-21T05:16:14.3238580Z           "complete": true,
2026-06-21T05:16:14.3238685Z           "evidence": [
2026-06-21T05:16:14.3238799Z             {
2026-06-21T05:16:14.3238919Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.3239128Z               "line": 588
2026-06-21T05:16:14.3239234Z             },
2026-06-21T05:16:14.3239324Z             {
2026-06-21T05:16:14.3239466Z               "path": "docs/STORAGE.md",
2026-06-21T05:16:14.3239577Z               "line": 49
2026-06-21T05:16:14.3239686Z             }
2026-06-21T05:16:14.3239799Z           ]
2026-06-21T05:16:14.3239894Z         },
2026-06-21T05:16:14.3240007Z         "impl": {
2026-06-21T05:16:14.3240126Z           "complete": true,
2026-06-21T05:16:14.3240236Z           "evidence": [
2026-06-21T05:16:14.3240341Z             {
2026-06-21T05:16:14.3240493Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.3240603Z               "line": 410
2026-06-21T05:16:14.3240707Z             },
2026-06-21T05:16:14.3240813Z             {
2026-06-21T05:16:14.3240961Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3241074Z               "line": 367
2026-06-21T05:16:14.3241166Z             },
2026-06-21T05:16:14.3241261Z             {
2026-06-21T05:16:14.3241399Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T05:16:14.3241500Z               "line": 293
2026-06-21T05:16:14.3241609Z             },
2026-06-21T05:16:14.3241713Z             {
2026-06-21T05:16:14.3241844Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3241947Z               "line": 1577
2026-06-21T05:16:14.3242053Z             }
2026-06-21T05:16:14.3242158Z           ]
2026-06-21T05:16:14.3242256Z         },
2026-06-21T05:16:14.3242368Z         "int": {
2026-06-21T05:16:14.3242473Z           "complete": false,
2026-06-21T05:16:14.3242581Z           "evidence": []
2026-06-21T05:16:14.3242685Z         },
2026-06-21T05:16:14.3242785Z         "unit": {
2026-06-21T05:16:14.3243011Z           "complete": true,
2026-06-21T05:16:14.3243113Z           "evidence": [
2026-06-21T05:16:14.3243218Z             {
2026-06-21T05:16:14.3243370Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.3243475Z               "line": 1163
2026-06-21T05:16:14.3243570Z             },
2026-06-21T05:16:14.3243680Z             {
2026-06-21T05:16:14.3243833Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3243941Z               "line": 944
2026-06-21T05:16:14.3244043Z             },
2026-06-21T05:16:14.3244137Z             {
2026-06-21T05:16:14.3244276Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3244494Z               "line": 1205
2026-06-21T05:16:14.3244586Z             },
2026-06-21T05:16:14.3244692Z             {
2026-06-21T05:16:14.3244819Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T05:16:14.3244929Z               "line": 659
2026-06-21T05:16:14.3245035Z             },
2026-06-21T05:16:14.3245143Z             {
2026-06-21T05:16:14.3245281Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3245390Z               "line": 8070
2026-06-21T05:16:14.3245493Z             }
2026-06-21T05:16:14.3245578Z           ]
2026-06-21T05:16:14.3245684Z         }
2026-06-21T05:16:14.3245784Z       }
2026-06-21T05:16:14.3245888Z     },
2026-06-21T05:16:14.3245994Z     {
2026-06-21T05:16:14.3246103Z       "id": "REQ-INST-15",
2026-06-21T05:16:14.3246847Z       "title": "Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)",
2026-06-21T05:16:14.3246967Z       "requiredStages": [
2026-06-21T05:16:14.3250402Z         "doc",
2026-06-21T05:16:14.3250525Z         "impl",
2026-06-21T05:16:14.3250628Z         "unit"
2026-06-21T05:16:14.3250729Z       ],
2026-06-21T05:16:14.3250839Z       "stages": {
2026-06-21T05:16:14.3250957Z         "doc": {
2026-06-21T05:16:14.3251063Z           "complete": true,
2026-06-21T05:16:14.3251173Z           "evidence": [
2026-06-21T05:16:14.3251277Z             {
2026-06-21T05:16:14.3251492Z               "path": "docs/adr/0010-immutable-home-subnet-fork-not-rehome.md",
2026-06-21T05:16:14.3251596Z               "line": 3
2026-06-21T05:16:14.3251698Z             }
2026-06-21T05:16:14.3251802Z           ]
2026-06-21T05:16:14.3251893Z         },
2026-06-21T05:16:14.3252007Z         "impl": {
2026-06-21T05:16:14.3252112Z           "complete": true,
2026-06-21T05:16:14.3252222Z           "evidence": [
2026-06-21T05:16:14.3252327Z             {
2026-06-21T05:16:14.3252497Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.3252603Z               "line": 353
2026-06-21T05:16:14.3252704Z             },
2026-06-21T05:16:14.3252808Z             {
2026-06-21T05:16:14.3252952Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-21T05:16:14.3253066Z               "line": 60
2026-06-21T05:16:14.3253160Z             },
2026-06-21T05:16:14.3253259Z             {
2026-06-21T05:16:14.3253407Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T05:16:14.3253514Z               "line": 368
2026-06-21T05:16:14.3253615Z             },
2026-06-21T05:16:14.3253720Z             {
2026-06-21T05:16:14.3253867Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T05:16:14.3253983Z               "line": 417
2026-06-21T05:16:14.3254083Z             },
2026-06-21T05:16:14.3254187Z             {
2026-06-21T05:16:14.3254327Z               "path": "crates/spt-store/src/home.rs",
2026-06-21T05:16:14.3254445Z               "line": 19
2026-06-21T05:16:14.3254540Z             },
2026-06-21T05:16:14.3254641Z             {
2026-06-21T05:16:14.3254774Z               "path": "crates/spt-store/src/home.rs",
2026-06-21T05:16:14.3254874Z               "line": 70
2026-06-21T05:16:14.3254985Z             },
2026-06-21T05:16:14.3255218Z             {
2026-06-21T05:16:14.3255364Z               "path": "crates/spt-store/src/home.rs",
2026-06-21T05:16:14.3255470Z               "line": 96
2026-06-21T05:16:14.3255576Z             },
2026-06-21T05:16:14.3255675Z             {
2026-06-21T05:16:14.3255802Z               "path": "crates/spt-store/src/home.rs",
2026-06-21T05:16:14.3255912Z               "line": 121
2026-06-21T05:16:14.3256015Z             },
2026-06-21T05:16:14.3256119Z             {
2026-06-21T05:16:14.3256249Z               "path": "crates/spt-store/src/home.rs",
2026-06-21T05:16:14.3256358Z               "line": 172
2026-06-21T05:16:14.3256463Z             },
2026-06-21T05:16:14.3256559Z             {
2026-06-21T05:16:14.3256826Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.3256935Z               "line": 178
2026-06-21T05:16:14.3257040Z             },
2026-06-21T05:16:14.3257141Z             {
2026-06-21T05:16:14.3257264Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3257374Z               "line": 1469
2026-06-21T05:16:14.3257485Z             }
2026-06-21T05:16:14.3257588Z           ]
2026-06-21T05:16:14.3257688Z         },
2026-06-21T05:16:14.3257795Z         "int": {
2026-06-21T05:16:14.3257917Z           "complete": false,
2026-06-21T05:16:14.3258023Z           "evidence": []
2026-06-21T05:16:14.3258124Z         },
2026-06-21T05:16:14.3258227Z         "unit": {
2026-06-21T05:16:14.3258342Z           "complete": true,
2026-06-21T05:16:14.3258448Z           "evidence": [
2026-06-21T05:16:14.3258551Z             {
2026-06-21T05:16:14.3258703Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T05:16:14.3258809Z               "line": 577
2026-06-21T05:16:14.3258913Z             },
2026-06-21T05:16:14.3259100Z             {
2026-06-21T05:16:14.3259251Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T05:16:14.3259362Z               "line": 638
2026-06-21T05:16:14.3259462Z             },
2026-06-21T05:16:14.3259566Z             {
2026-06-21T05:16:14.3259700Z               "path": "crates/spt-store/src/home.rs",
2026-06-21T05:16:14.3259815Z               "line": 213
2026-06-21T05:16:14.3259914Z             },
2026-06-21T05:16:14.3260015Z             {
2026-06-21T05:16:14.3260138Z               "path": "crates/spt-store/src/home.rs",
2026-06-21T05:16:14.3260243Z               "line": 249
2026-06-21T05:16:14.3260345Z             },
2026-06-21T05:16:14.3260435Z             {
2026-06-21T05:16:14.3260572Z               "path": "crates/spt-store/src/home.rs",
2026-06-21T05:16:14.3260679Z               "line": 262
2026-06-21T05:16:14.3260791Z             },
2026-06-21T05:16:14.3260895Z             {
2026-06-21T05:16:14.3261053Z               "path": "crates/spt-store/src/home.rs",
2026-06-21T05:16:14.3261170Z               "line": 338
2026-06-21T05:16:14.3261270Z             },
2026-06-21T05:16:14.3261376Z             {
2026-06-21T05:16:14.3261508Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.3261618Z               "line": 690
2026-06-21T05:16:14.3261719Z             },
2026-06-21T05:16:14.3261818Z             {
2026-06-21T05:16:14.3261943Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3262048Z               "line": 8007
2026-06-21T05:16:14.3262157Z             },
2026-06-21T05:16:14.3262253Z             {
2026-06-21T05:16:14.3262382Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3262486Z               "line": 9837
2026-06-21T05:16:14.3262587Z             }
2026-06-21T05:16:14.3262681Z           ]
2026-06-21T05:16:14.3262782Z         }
2026-06-21T05:16:14.3262882Z       }
2026-06-21T05:16:14.3262982Z     },
2026-06-21T05:16:14.3263087Z     {
2026-06-21T05:16:14.3263197Z       "id": "REQ-INST-2",
2026-06-21T05:16:14.3263335Z       "title": "Per-node files, synced Psyche mind",
2026-06-21T05:16:14.3263454Z       "requiredStages": [
2026-06-21T05:16:14.3263556Z         "impl",
2026-06-21T05:16:14.3263664Z         "unit"
2026-06-21T05:16:14.3263763Z       ],
2026-06-21T05:16:14.3263873Z       "stages": {
2026-06-21T05:16:14.3264079Z         "doc": {
2026-06-21T05:16:14.3264199Z           "complete": false,
2026-06-21T05:16:14.3264310Z           "evidence": []
2026-06-21T05:16:14.3264403Z         },
2026-06-21T05:16:14.3264505Z         "impl": {
2026-06-21T05:16:14.3264614Z           "complete": true,
2026-06-21T05:16:14.3264728Z           "evidence": [
2026-06-21T05:16:14.3264829Z             {
2026-06-21T05:16:14.3264982Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.3265091Z               "line": 108
2026-06-21T05:16:14.3265187Z             },
2026-06-21T05:16:14.3265291Z             {
2026-06-21T05:16:14.3265429Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-21T05:16:14.3265639Z               "line": 28
2026-06-21T05:16:14.3265749Z             },
2026-06-21T05:16:14.3265850Z             {
2026-06-21T05:16:14.3265997Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-21T05:16:14.3266108Z               "line": 74
2026-06-21T05:16:14.3266221Z             },
2026-06-21T05:16:14.3266325Z             {
2026-06-21T05:16:14.3266468Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-21T05:16:14.3266576Z               "line": 96
2026-06-21T05:16:14.3266680Z             },
2026-06-21T05:16:14.3266780Z             {
2026-06-21T05:16:14.3266918Z               "path": "crates/spt-live/src/resume.rs",
2026-06-21T05:16:14.3267023Z               "line": 86
2026-06-21T05:16:14.3267124Z             },
2026-06-21T05:16:14.3267229Z             {
2026-06-21T05:16:14.3267362Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-21T05:16:14.3267463Z               "line": 118
2026-06-21T05:16:14.3267571Z             }
2026-06-21T05:16:14.3267672Z           ]
2026-06-21T05:16:14.3267777Z         },
2026-06-21T05:16:14.3267886Z         "int": {
2026-06-21T05:16:14.3267996Z           "complete": false,
2026-06-21T05:16:14.3268102Z           "evidence": []
2026-06-21T05:16:14.3268197Z         },
2026-06-21T05:16:14.3268306Z         "unit": {
2026-06-21T05:16:14.3268417Z           "complete": true,
2026-06-21T05:16:14.3268530Z           "evidence": [
2026-06-21T05:16:14.3268626Z             {
2026-06-21T05:16:14.3268755Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-21T05:16:14.3268868Z               "line": 250
2026-06-21T05:16:14.3269027Z             },
2026-06-21T05:16:14.3269130Z             {
2026-06-21T05:16:14.3269253Z               "path": "crates/spt-live/src/resume.rs",
2026-06-21T05:16:14.3269359Z               "line": 280
2026-06-21T05:16:14.3269459Z             }
2026-06-21T05:16:14.3269558Z           ]
2026-06-21T05:16:14.3269650Z         }
2026-06-21T05:16:14.3269751Z       }
2026-06-21T05:16:14.3269859Z     },
2026-06-21T05:16:14.3269956Z     {
2026-06-21T05:16:14.3270065Z       "id": "REQ-INST-3",
2026-06-21T05:16:14.3270241Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-21T05:16:14.3270351Z       "requiredStages": [
2026-06-21T05:16:14.3270450Z         "doc",
2026-06-21T05:16:14.3270551Z         "impl",
2026-06-21T05:16:14.3270647Z         "unit"
2026-06-21T05:16:14.3270746Z       ],
2026-06-21T05:16:14.3270856Z       "stages": {
2026-06-21T05:16:14.3270962Z         "doc": {
2026-06-21T05:16:14.3271070Z           "complete": true,
2026-06-21T05:16:14.3271185Z           "evidence": [
2026-06-21T05:16:14.3271281Z             {
2026-06-21T05:16:14.3271413Z               "path": "docs/DORMANCY-BUDGET.md",
2026-06-21T05:16:14.3271518Z               "line": 3
2026-06-21T05:16:14.3271622Z             }
2026-06-21T05:16:14.3271716Z           ]
2026-06-21T05:16:14.3271815Z         },
2026-06-21T05:16:14.3271916Z         "impl": {
2026-06-21T05:16:14.3272035Z           "complete": true,
2026-06-21T05:16:14.3272145Z           "evidence": [
2026-06-21T05:16:14.3272241Z             {
2026-06-21T05:16:14.3272393Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-21T05:16:14.3272503Z               "line": 59
2026-06-21T05:16:14.3272603Z             },
2026-06-21T05:16:14.3272712Z             {
2026-06-21T05:16:14.3272956Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-21T05:16:14.3273069Z               "line": 480
2026-06-21T05:16:14.3273176Z             },
2026-06-21T05:16:14.3273270Z             {
2026-06-21T05:16:14.3273418Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.3273533Z               "line": 254
2026-06-21T05:16:14.3273637Z             },
2026-06-21T05:16:14.3273733Z             {
2026-06-21T05:16:14.3273876Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.3273986Z               "line": 384
2026-06-21T05:16:14.3274091Z             },
2026-06-21T05:16:14.3274294Z             {
2026-06-21T05:16:14.3274442Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.3274550Z               "line": 418
2026-06-21T05:16:14.3274639Z             },
2026-06-21T05:16:14.3274745Z             {
2026-06-21T05:16:14.3274888Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-21T05:16:14.3275007Z               "line": 74
2026-06-21T05:16:14.3275103Z             },
2026-06-21T05:16:14.3275203Z             {
2026-06-21T05:16:14.3275365Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.3275475Z               "line": 234
2026-06-21T05:16:14.3275579Z             },
2026-06-21T05:16:14.3275679Z             {
2026-06-21T05:16:14.3275832Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.3275946Z               "line": 396
2026-06-21T05:16:14.3276062Z             },
2026-06-21T05:16:14.3276175Z             {
2026-06-21T05:16:14.3276324Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T05:16:14.3276443Z               "line": 45
2026-06-21T05:16:14.3276548Z             },
2026-06-21T05:16:14.3276654Z             {
2026-06-21T05:16:14.3276795Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T05:16:14.3276894Z               "line": 114
2026-06-21T05:16:14.3277004Z             },
2026-06-21T05:16:14.3277112Z             {
2026-06-21T05:16:14.3277254Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T05:16:14.3277360Z               "line": 152
2026-06-21T05:16:14.3277469Z             },
2026-06-21T05:16:14.3277574Z             {
2026-06-21T05:16:14.3277708Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T05:16:14.3277822Z               "line": 168
2026-06-21T05:16:14.3277922Z             },
2026-06-21T05:16:14.3278023Z             {
2026-06-21T05:16:14.3278150Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T05:16:14.3278262Z               "line": 178
2026-06-21T05:16:14.3278370Z             },
2026-06-21T05:16:14.3278465Z             {
2026-06-21T05:16:14.3278610Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T05:16:14.3278713Z               "line": 210
2026-06-21T05:16:14.3278818Z             },
2026-06-21T05:16:14.3278919Z             {
2026-06-21T05:16:14.3279133Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T05:16:14.3279249Z               "line": 287
2026-06-21T05:16:14.3279338Z             },
2026-06-21T05:16:14.3279487Z             {
2026-06-21T05:16:14.3279625Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T05:16:14.3279742Z               "line": 311
2026-06-21T05:16:14.3279843Z             },
2026-06-21T05:16:14.3279943Z             {
2026-06-21T05:16:14.3280081Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T05:16:14.3280186Z               "line": 389
2026-06-21T05:16:14.3280291Z             },
2026-06-21T05:16:14.3280390Z             {
2026-06-21T05:16:14.3280535Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T05:16:14.3280649Z               "line": 438
2026-06-21T05:16:14.3280748Z             },
2026-06-21T05:16:14.3280845Z             {
2026-06-21T05:16:14.3280987Z               "path": "crates/spt-daemon/tests/budget.rs",
2026-06-21T05:16:14.3281101Z               "line": 37
2026-06-21T05:16:14.3281198Z             },
2026-06-21T05:16:14.3281407Z             {
2026-06-21T05:16:14.3281550Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3281654Z               "line": 62
2026-06-21T05:16:14.3281760Z             },
2026-06-21T05:16:14.3281865Z             {
2026-06-21T05:16:14.3282002Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T05:16:14.3282111Z               "line": 279
2026-06-21T05:16:14.3282215Z             },
2026-06-21T05:16:14.3282314Z             {
2026-06-21T05:16:14.3282448Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3282558Z               "line": 1848
2026-06-21T05:16:14.3282662Z             }
2026-06-21T05:16:14.3282863Z           ]
2026-06-21T05:16:14.3282962Z         },
2026-06-21T05:16:14.3283068Z         "int": {
2026-06-21T05:16:14.3283182Z           "complete": false,
2026-06-21T05:16:14.3283296Z           "evidence": []
2026-06-21T05:16:14.3283388Z         },
2026-06-21T05:16:14.3283492Z         "unit": {
2026-06-21T05:16:14.3283620Z           "complete": true,
2026-06-21T05:16:14.3283726Z           "evidence": [
2026-06-21T05:16:14.3283830Z             {
2026-06-21T05:16:14.3283963Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-21T05:16:14.3284074Z               "line": 360
2026-06-21T05:16:14.3284183Z             },
2026-06-21T05:16:14.3284288Z             {
2026-06-21T05:16:14.3284431Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.3284536Z               "line": 837
2026-06-21T05:16:14.3284646Z             },
2026-06-21T05:16:14.3284751Z             {
2026-06-21T05:16:14.3284892Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.3285012Z               "line": 894
2026-06-21T05:16:14.3285110Z             },
2026-06-21T05:16:14.3285214Z             {
2026-06-21T05:16:14.3285358Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T05:16:14.3285472Z               "line": 889
2026-06-21T05:16:14.3285577Z             },
2026-06-21T05:16:14.3285673Z             {
2026-06-21T05:16:14.3285820Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T05:16:14.3285930Z               "line": 1014
2026-06-21T05:16:14.3286040Z             },
2026-06-21T05:16:14.3286139Z             {
2026-06-21T05:16:14.3286298Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.3286416Z               "line": 1264
2026-06-21T05:16:14.3286521Z             },
2026-06-21T05:16:14.3286622Z             {
2026-06-21T05:16:14.3286769Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.3286884Z               "line": 1405
2026-06-21T05:16:14.3286980Z             },
2026-06-21T05:16:14.3287083Z             {
2026-06-21T05:16:14.3287223Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T05:16:14.3287327Z               "line": 449
2026-06-21T05:16:14.3287435Z             },
2026-06-21T05:16:14.3287535Z             {
2026-06-21T05:16:14.3287677Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T05:16:14.3287785Z               "line": 485
2026-06-21T05:16:14.3287891Z             },
2026-06-21T05:16:14.3287992Z             {
2026-06-21T05:16:14.3288129Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T05:16:14.3288235Z               "line": 540
2026-06-21T05:16:14.3288340Z             },
2026-06-21T05:16:14.3288444Z             {
2026-06-21T05:16:14.3288583Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T05:16:14.3288692Z               "line": 697
2026-06-21T05:16:14.3288797Z             },
2026-06-21T05:16:14.3288902Z             {
2026-06-21T05:16:14.3289121Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T05:16:14.3289236Z               "line": 931
2026-06-21T05:16:14.3289341Z             },
2026-06-21T05:16:14.3289436Z             {
2026-06-21T05:16:14.3289589Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T05:16:14.3289703Z               "line": 945
2026-06-21T05:16:14.3289927Z             },
2026-06-21T05:16:14.3290032Z             {
2026-06-21T05:16:14.3290181Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3290298Z               "line": 1290
2026-06-21T05:16:14.3290407Z             },
2026-06-21T05:16:14.3290503Z             {
2026-06-21T05:16:14.3290645Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T05:16:14.3290746Z               "line": 609
2026-06-21T05:16:14.3290856Z             },
2026-06-21T05:16:14.3290946Z             {
2026-06-21T05:16:14.3291081Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3291195Z               "line": 8031
2026-06-21T05:16:14.3291289Z             }
2026-06-21T05:16:14.3291495Z           ]
2026-06-21T05:16:14.3291594Z         }
2026-06-21T05:16:14.3291696Z       }
2026-06-21T05:16:14.3291796Z     },
2026-06-21T05:16:14.3291900Z     {
2026-06-21T05:16:14.3292011Z       "id": "REQ-INST-4",
2026-06-21T05:16:14.3292215Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-21T05:16:14.3292340Z       "requiredStages": [
2026-06-21T05:16:14.3292435Z         "impl",
2026-06-21T05:16:14.3292543Z         "unit"
2026-06-21T05:16:14.3292643Z       ],
2026-06-21T05:16:14.3292752Z       "stages": {
2026-06-21T05:16:14.3292860Z         "doc": {
2026-06-21T05:16:14.3292970Z           "complete": false,
2026-06-21T05:16:14.3293085Z           "evidence": []
2026-06-21T05:16:14.3293184Z         },
2026-06-21T05:16:14.3293289Z         "impl": {
2026-06-21T05:16:14.3293399Z           "complete": true,
2026-06-21T05:16:14.3293508Z           "evidence": [
2026-06-21T05:16:14.3293614Z             {
2026-06-21T05:16:14.3293771Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.3293889Z               "line": 385
2026-06-21T05:16:14.3293991Z             },
2026-06-21T05:16:14.3294091Z             {
2026-06-21T05:16:14.3294238Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T05:16:14.3294348Z               "line": 202
2026-06-21T05:16:14.3294462Z             },
2026-06-21T05:16:14.3294563Z             {
2026-06-21T05:16:14.3294705Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T05:16:14.3294815Z               "line": 234
2026-06-21T05:16:14.3294921Z             },
2026-06-21T05:16:14.3295019Z             {
2026-06-21T05:16:14.3295168Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T05:16:14.3295274Z               "line": 274
2026-06-21T05:16:14.3295372Z             }
2026-06-21T05:16:14.3295476Z           ]
2026-06-21T05:16:14.3295572Z         },
2026-06-21T05:16:14.3295679Z         "int": {
2026-06-21T05:16:14.3295784Z           "complete": false,
2026-06-21T05:16:14.3295904Z           "evidence": []
2026-06-21T05:16:14.3296013Z         },
2026-06-21T05:16:14.3296112Z         "unit": {
2026-06-21T05:16:14.3296233Z           "complete": true,
2026-06-21T05:16:14.3296342Z           "evidence": [
2026-06-21T05:16:14.3296451Z             {
2026-06-21T05:16:14.3296600Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.3296718Z               "line": 889
2026-06-21T05:16:14.3296814Z             },
2026-06-21T05:16:14.3296914Z             {
2026-06-21T05:16:14.3297053Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T05:16:14.3297154Z               "line": 561
2026-06-21T05:16:14.3297257Z             },
2026-06-21T05:16:14.3297362Z             {
2026-06-21T05:16:14.3297507Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T05:16:14.3297615Z               "line": 668
2026-06-21T05:16:14.3297720Z             },
2026-06-21T05:16:14.3297817Z             {
2026-06-21T05:16:14.3297949Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T05:16:14.3298067Z               "line": 750
2026-06-21T05:16:14.3298162Z             }
2026-06-21T05:16:14.3298270Z           ]
2026-06-21T05:16:14.3298374Z         }
2026-06-21T05:16:14.3298475Z       }
2026-06-21T05:16:14.3298585Z     },
2026-06-21T05:16:14.3298684Z     {
2026-06-21T05:16:14.3298866Z       "id": "REQ-INST-5",
2026-06-21T05:16:14.3299152Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-21T05:16:14.3299271Z       "requiredStages": [
2026-06-21T05:16:14.3299372Z         "impl",
2026-06-21T05:16:14.3299477Z         "unit",
2026-06-21T05:16:14.3299581Z         "int"
2026-06-21T05:16:14.3299686Z       ],
2026-06-21T05:16:14.3299786Z       "stages": {
2026-06-21T05:16:14.3299887Z         "doc": {
2026-06-21T05:16:14.3299996Z           "complete": false,
2026-06-21T05:16:14.3300111Z           "evidence": []
2026-06-21T05:16:14.3300206Z         },
2026-06-21T05:16:14.3300306Z         "impl": {
2026-06-21T05:16:14.3300520Z           "complete": true,
2026-06-21T05:16:14.3300626Z           "evidence": [
2026-06-21T05:16:14.3300722Z             {
2026-06-21T05:16:14.3300872Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-21T05:16:14.3300992Z               "line": 85
2026-06-21T05:16:14.3301098Z             },
2026-06-21T05:16:14.3301205Z             {
2026-06-21T05:16:14.3301335Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T05:16:14.3301441Z               "line": 68
2026-06-21T05:16:14.3301534Z             },
2026-06-21T05:16:14.3301641Z             {
2026-06-21T05:16:14.3301779Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T05:16:14.3301888Z               "line": 99
2026-06-21T05:16:14.3301994Z             },
2026-06-21T05:16:14.3302088Z             {
2026-06-21T05:16:14.3302226Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T05:16:14.3302332Z               "line": 183
2026-06-21T05:16:14.3302437Z             },
2026-06-21T05:16:14.3302556Z             {
2026-06-21T05:16:14.3302689Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T05:16:14.3302789Z               "line": 314
2026-06-21T05:16:14.3302885Z             }
2026-06-21T05:16:14.3302985Z           ]
2026-06-21T05:16:14.3303088Z         },
2026-06-21T05:16:14.3303193Z         "int": {
2026-06-21T05:16:14.3303322Z           "complete": true,
2026-06-21T05:16:14.3303420Z           "evidence": [
2026-06-21T05:16:14.3303525Z             {
2026-06-21T05:16:14.3303683Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-21T05:16:14.3303782Z               "line": 156
2026-06-21T05:16:14.3303882Z             },
2026-06-21T05:16:14.3303993Z             {
2026-06-21T05:16:14.3304139Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-21T05:16:14.3304236Z               "line": 145
2026-06-21T05:16:14.3304341Z             },
2026-06-21T05:16:14.3304440Z             {
2026-06-21T05:16:14.3304584Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.3304707Z               "line": 707
2026-06-21T05:16:14.3304808Z             },
2026-06-21T05:16:14.3304903Z             {
2026-06-21T05:16:14.3305036Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.3305152Z               "line": 1069
2026-06-21T05:16:14.3305251Z             }
2026-06-21T05:16:14.3305365Z           ]
2026-06-21T05:16:14.3305471Z         },
2026-06-21T05:16:14.3305575Z         "unit": {
2026-06-21T05:16:14.3305694Z           "complete": true,
2026-06-21T05:16:14.3305791Z           "evidence": [
2026-06-21T05:16:14.3305890Z             {
2026-06-21T05:16:14.3306017Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T05:16:14.3306127Z               "line": 552
2026-06-21T05:16:14.3306235Z             },
2026-06-21T05:16:14.3306335Z             {
2026-06-21T05:16:14.3306474Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T05:16:14.3306578Z               "line": 595
2026-06-21T05:16:14.3306687Z             },
2026-06-21T05:16:14.3306789Z             {
2026-06-21T05:16:14.3306930Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-21T05:16:14.3307050Z               "line": 219
2026-06-21T05:16:14.3307150Z             }
2026-06-21T05:16:14.3307250Z           ]
2026-06-21T05:16:14.3307346Z         }
2026-06-21T05:16:14.3307446Z       }
2026-06-21T05:16:14.3307655Z     },
2026-06-21T05:16:14.3307766Z     {
2026-06-21T05:16:14.3307879Z       "id": "REQ-INST-6",
2026-06-21T05:16:14.3308086Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-21T05:16:14.3308204Z       "requiredStages": [
2026-06-21T05:16:14.3308305Z         "impl",
2026-06-21T05:16:14.3308410Z         "unit",
2026-06-21T05:16:14.3308504Z         "int"
2026-06-21T05:16:14.3308608Z       ],
2026-06-21T05:16:14.3308718Z       "stages": {
2026-06-21T05:16:14.3308816Z         "doc": {
2026-06-21T05:16:14.3308929Z           "complete": true,
2026-06-21T05:16:14.3309112Z           "evidence": [
2026-06-21T05:16:14.3309312Z             {
2026-06-21T05:16:14.3309431Z               "path": "docs/DEFERRED.md",
2026-06-21T05:16:14.3309545Z               "line": 13
2026-06-21T05:16:14.3309642Z             }
2026-06-21T05:16:14.3309732Z           ]
2026-06-21T05:16:14.3309836Z         },
2026-06-21T05:16:14.3309942Z         "impl": {
2026-06-21T05:16:14.3310060Z           "complete": true,
2026-06-21T05:16:14.3310165Z           "evidence": [
2026-06-21T05:16:14.3310271Z             {
2026-06-21T05:16:14.3310423Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-21T05:16:14.3310532Z               "line": 391
2026-06-21T05:16:14.3310638Z             },
2026-06-21T05:16:14.3310742Z             {
2026-06-21T05:16:14.3310896Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-21T05:16:14.3310995Z               "line": 27
2026-06-21T05:16:14.3311142Z             },
2026-06-21T05:16:14.3311249Z             {
2026-06-21T05:16:14.3311380Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-21T05:16:14.3311508Z               "line": 73
2026-06-21T05:16:14.3311610Z             },
2026-06-21T05:16:14.3311714Z             {
2026-06-21T05:16:14.3311852Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-21T05:16:14.3311958Z               "line": 182
2026-06-21T05:16:14.3312052Z             },
2026-06-21T05:16:14.3312162Z             {
2026-06-21T05:16:14.3312310Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T05:16:14.3312419Z               "line": 426
2026-06-21T05:16:14.3312520Z             },
2026-06-21T05:16:14.3312620Z             {
2026-06-21T05:16:14.3312758Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-21T05:16:14.3312869Z               "line": 31
2026-06-21T05:16:14.3312967Z             },
2026-06-21T05:16:14.3313072Z             {
2026-06-21T05:16:14.3313212Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T05:16:14.3313320Z               "line": 202
2026-06-21T05:16:14.3313416Z             },
2026-06-21T05:16:14.3313527Z             {
2026-06-21T05:16:14.3313663Z               "path": "crates/spt/src/api/worker.rs",
2026-06-21T05:16:14.3313763Z               "line": 83
2026-06-21T05:16:14.3313872Z             },
2026-06-21T05:16:14.3313975Z             {
2026-06-21T05:16:14.3314104Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3314220Z               "line": 1849
2026-06-21T05:16:14.3314328Z             },
2026-06-21T05:16:14.3314438Z             {
2026-06-21T05:16:14.3314562Z               "path": "crates/spt/src/wansend.rs",
2026-06-21T05:16:14.3314671Z               "line": 179
2026-06-21T05:16:14.3314768Z             },
2026-06-21T05:16:14.3314872Z             {
2026-06-21T05:16:14.3315000Z               "path": "crates/spt/src/wansend.rs",
2026-06-21T05:16:14.3315106Z               "line": 215
2026-06-21T05:16:14.3315220Z             }
2026-06-21T05:16:14.3315320Z           ]
2026-06-21T05:16:14.3315416Z         },
2026-06-21T05:16:14.3315520Z         "int": {
2026-06-21T05:16:14.3315639Z           "complete": true,
2026-06-21T05:16:14.3315741Z           "evidence": [
2026-06-21T05:16:14.3315848Z             {
2026-06-21T05:16:14.3315998Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.3316108Z               "line": 721
2026-06-21T05:16:14.3316217Z             },
2026-06-21T05:16:14.3316413Z             {
2026-06-21T05:16:14.3316564Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.3316673Z               "line": 1114
2026-06-21T05:16:14.3316782Z             },
2026-06-21T05:16:14.3316880Z             {
2026-06-21T05:16:14.3317014Z               "path": "crates/spt/src/wansend.rs",
2026-06-21T05:16:14.3317129Z               "line": 726
2026-06-21T05:16:14.3317228Z             }
2026-06-21T05:16:14.3317339Z           ]
2026-06-21T05:16:14.3317430Z         },
2026-06-21T05:16:14.3317543Z         "unit": {
2026-06-21T05:16:14.3317654Z           "complete": true,
2026-06-21T05:16:14.3317759Z           "evidence": [
2026-06-21T05:16:14.3317940Z             {
2026-06-21T05:16:14.3318068Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-21T05:16:14.3318177Z               "line": 661
2026-06-21T05:16:14.3318284Z             },
2026-06-21T05:16:14.3318387Z             {
2026-06-21T05:16:14.3318530Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T05:16:14.3318651Z               "line": 899
2026-06-21T05:16:14.3318749Z             },
2026-06-21T05:16:14.3318845Z             {
2026-06-21T05:16:14.3319045Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-21T05:16:14.3319153Z               "line": 66
2026-06-21T05:16:14.3319254Z             },
2026-06-21T05:16:14.3319362Z             {
2026-06-21T05:16:14.3319514Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T05:16:14.3319624Z               "line": 297
2026-06-21T05:16:14.3319729Z             },
2026-06-21T05:16:14.3319834Z             {
2026-06-21T05:16:14.3319967Z               "path": "crates/spt/src/api/worker.rs",
2026-06-21T05:16:14.3320076Z               "line": 203
2026-06-21T05:16:14.3320182Z             }
2026-06-21T05:16:14.3320282Z           ]
2026-06-21T05:16:14.3320386Z         }
2026-06-21T05:16:14.3320482Z       }
2026-06-21T05:16:14.3320577Z     },
2026-06-21T05:16:14.3320687Z     {
2026-06-21T05:16:14.3320792Z       "id": "REQ-INST-7",
2026-06-21T05:16:14.3320973Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-21T05:16:14.3321073Z       "requiredStages": [
2026-06-21T05:16:14.3321184Z         "impl",
2026-06-21T05:16:14.3321283Z         "unit",
2026-06-21T05:16:14.3321388Z         "int"
2026-06-21T05:16:14.3321490Z       ],
2026-06-21T05:16:14.3321597Z       "stages": {
2026-06-21T05:16:14.3321703Z         "doc": {
2026-06-21T05:16:14.3321809Z           "complete": false,
2026-06-21T05:16:14.3321921Z           "evidence": []
2026-06-21T05:16:14.3322011Z         },
2026-06-21T05:16:14.3322122Z         "impl": {
2026-06-21T05:16:14.3322222Z           "complete": true,
2026-06-21T05:16:14.3322326Z           "evidence": [
2026-06-21T05:16:14.3322436Z             {
2026-06-21T05:16:14.3322584Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-21T05:16:14.3322693Z               "line": 436
2026-06-21T05:16:14.3322799Z             },
2026-06-21T05:16:14.3322899Z             {
2026-06-21T05:16:14.3323056Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.3323171Z               "line": 27
2026-06-21T05:16:14.3323275Z             },
2026-06-21T05:16:14.3323376Z             {
2026-06-21T05:16:14.3323532Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.3323642Z               "line": 207
2026-06-21T05:16:14.3323748Z             },
2026-06-21T05:16:14.3323861Z             {
2026-06-21T05:16:14.3324000Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.3324115Z               "line": 344
2026-06-21T05:16:14.3324209Z             },
2026-06-21T05:16:14.3324318Z             {
2026-06-21T05:16:14.3324456Z               "path": "crates/spt-net/src/net/ndjson.rs",
2026-06-21T05:16:14.3324573Z               "line": 59
2026-06-21T05:16:14.3324674Z             },
2026-06-21T05:16:14.3324770Z             {
2026-06-21T05:16:14.3324907Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3325017Z               "line": 41
2026-06-21T05:16:14.3325236Z             },
2026-06-21T05:16:14.3325337Z             {
2026-06-21T05:16:14.3325494Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-21T05:16:14.3325604Z               "line": 27
2026-06-21T05:16:14.3328676Z             },
2026-06-21T05:16:14.3328815Z             {
2026-06-21T05:16:14.3329076Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-21T05:16:14.3329187Z               "line": 119
2026-06-21T05:16:14.3329285Z             },
2026-06-21T05:16:14.3329391Z             {
2026-06-21T05:16:14.3329549Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-21T05:16:14.3329800Z               "line": 134
2026-06-21T05:16:14.3329908Z             },
2026-06-21T05:16:14.3330007Z             {
2026-06-21T05:16:14.3330161Z               "path": "crates/spt-store/src/registry.rs",
2026-06-21T05:16:14.3330265Z               "line": 139
2026-06-21T05:16:14.3330360Z             }
2026-06-21T05:16:14.3330462Z           ]
2026-06-21T05:16:14.3330566Z         },
2026-06-21T05:16:14.3330675Z         "int": {
2026-06-21T05:16:14.3330786Z           "complete": true,
2026-06-21T05:16:14.3330895Z           "evidence": [
2026-06-21T05:16:14.3330994Z             {
2026-06-21T05:16:14.3331133Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-21T05:16:14.3331242Z               "line": 145
2026-06-21T05:16:14.3331333Z             },
2026-06-21T05:16:14.3331430Z             {
2026-06-21T05:16:14.3331567Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.3331662Z               "line": 665
2026-06-21T05:16:14.3331768Z             },
2026-06-21T05:16:14.3331896Z             {
2026-06-21T05:16:14.3332035Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.3332129Z               "line": 964
2026-06-21T05:16:14.3332229Z             }
2026-06-21T05:16:14.3332321Z           ]
2026-06-21T05:16:14.3332425Z         },
2026-06-21T05:16:14.3332524Z         "unit": {
2026-06-21T05:16:14.3332643Z           "complete": true,
2026-06-21T05:16:14.3332749Z           "evidence": [
2026-06-21T05:16:14.3332853Z             {
2026-06-21T05:16:14.3332987Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.3333097Z               "line": 1134
2026-06-21T05:16:14.3333196Z             },
2026-06-21T05:16:14.3333302Z             {
2026-06-21T05:16:14.3333445Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.3333563Z               "line": 1521
2026-06-21T05:16:14.3333660Z             },
2026-06-21T05:16:14.3333764Z             {
2026-06-21T05:16:14.3333907Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-21T05:16:14.3334017Z               "line": 84
2026-06-21T05:16:14.3334122Z             },
2026-06-21T05:16:14.3334227Z             {
2026-06-21T05:16:14.3334360Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3334460Z               "line": 812
2026-06-21T05:16:14.3334561Z             },
2026-06-21T05:16:14.3334651Z             {
2026-06-21T05:16:14.3334788Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3334888Z               "line": 823
2026-06-21T05:16:14.3334983Z             },
2026-06-21T05:16:14.3335091Z             {
2026-06-21T05:16:14.3335215Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3335325Z               "line": 838
2026-06-21T05:16:14.3335420Z             },
2026-06-21T05:16:14.3335519Z             {
2026-06-21T05:16:14.3335668Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-21T05:16:14.3335767Z               "line": 166
2026-06-21T05:16:14.3335883Z             },
2026-06-21T05:16:14.3335983Z             {
2026-06-21T05:16:14.3336125Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-21T05:16:14.3336226Z               "line": 181
2026-06-21T05:16:14.3336331Z             },
2026-06-21T05:16:14.3336435Z             {
2026-06-21T05:16:14.3336570Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-21T05:16:14.3336784Z               "line": 214
2026-06-21T05:16:14.3336885Z             }
2026-06-21T05:16:14.3336983Z           ]
2026-06-21T05:16:14.3337084Z         }
2026-06-21T05:16:14.3337185Z       }
2026-06-21T05:16:14.3337293Z     },
2026-06-21T05:16:14.3337389Z     {
2026-06-21T05:16:14.3337495Z       "id": "REQ-INST-8",
2026-06-21T05:16:14.3337660Z       "title": "Remote-control mode distinct from local operation",
2026-06-21T05:16:14.3337779Z       "requiredStages": [
2026-06-21T05:16:14.3337878Z         "impl",
2026-06-21T05:16:14.3337977Z         "unit",
2026-06-21T05:16:14.3338082Z         "int"
2026-06-21T05:16:14.3338249Z       ],
2026-06-21T05:16:14.3338358Z       "stages": {
2026-06-21T05:16:14.3338459Z         "doc": {
2026-06-21T05:16:14.3338564Z           "complete": false,
2026-06-21T05:16:14.3338663Z           "evidence": []
2026-06-21T05:16:14.3338769Z         },
2026-06-21T05:16:14.3338879Z         "impl": {
2026-06-21T05:16:14.3339079Z           "complete": true,
2026-06-21T05:16:14.3339197Z           "evidence": [
2026-06-21T05:16:14.3339297Z             {
2026-06-21T05:16:14.3339437Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-21T05:16:14.3339540Z               "line": 104
2026-06-21T05:16:14.3339646Z             },
2026-06-21T05:16:14.3339752Z             {
2026-06-21T05:16:14.3339869Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-21T05:16:14.3339975Z               "line": 330
2026-06-21T05:16:14.3340072Z             },
2026-06-21T05:16:14.3340174Z             {
2026-06-21T05:16:14.3340302Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-21T05:16:14.3340408Z               "line": 370
2026-06-21T05:16:14.3340501Z             },
2026-06-21T05:16:14.3340596Z             {
2026-06-21T05:16:14.3340730Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-21T05:16:14.3340834Z               "line": 62
2026-06-21T05:16:14.3340939Z             }
2026-06-21T05:16:14.3341050Z           ]
2026-06-21T05:16:14.3341149Z         },
2026-06-21T05:16:14.3341254Z         "int": {
2026-06-21T05:16:14.3341360Z           "complete": true,
2026-06-21T05:16:14.3341469Z           "evidence": [
2026-06-21T05:16:14.3341569Z             {
2026-06-21T05:16:14.3341703Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-21T05:16:14.3341802Z               "line": 415
2026-06-21T05:16:14.3341902Z             },
2026-06-21T05:16:14.3342004Z             {
2026-06-21T05:16:14.3342131Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.3342242Z               "line": 1028
2026-06-21T05:16:14.3342333Z             }
2026-06-21T05:16:14.3342442Z           ]
2026-06-21T05:16:14.3342542Z         },
2026-06-21T05:16:14.3342634Z         "unit": {
2026-06-21T05:16:14.3342746Z           "complete": true,
2026-06-21T05:16:14.3342847Z           "evidence": [
2026-06-21T05:16:14.3342944Z             {
2026-06-21T05:16:14.3343075Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T05:16:14.3343174Z               "line": 366
2026-06-21T05:16:14.3343280Z             },
2026-06-21T05:16:14.3343380Z             {
2026-06-21T05:16:14.3343513Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T05:16:14.3343619Z               "line": 633
2026-06-21T05:16:14.3343718Z             },
2026-06-21T05:16:14.3343813Z             {
2026-06-21T05:16:14.3343947Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-21T05:16:14.3344061Z               "line": 116
2026-06-21T05:16:14.3344167Z             },
2026-06-21T05:16:14.3344267Z             {
2026-06-21T05:16:14.3344405Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-21T05:16:14.3344521Z               "line": 160
2026-06-21T05:16:14.3344615Z             }
2026-06-21T05:16:14.3344715Z           ]
2026-06-21T05:16:14.3344806Z         }
2026-06-21T05:16:14.3344906Z       }
2026-06-21T05:16:14.3345010Z     },
2026-06-21T05:16:14.3345106Z     {
2026-06-21T05:16:14.3345216Z       "id": "REQ-INST-9",
2026-06-21T05:16:14.3345524Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-21T05:16:14.3345637Z       "requiredStages": [
2026-06-21T05:16:14.3345736Z         "impl",
2026-06-21T05:16:14.3345827Z         "unit"
2026-06-21T05:16:14.3345923Z       ],
2026-06-21T05:16:14.3346022Z       "stages": {
2026-06-21T05:16:14.3346128Z         "doc": {
2026-06-21T05:16:14.3346242Z           "complete": false,
2026-06-21T05:16:14.3346356Z           "evidence": []
2026-06-21T05:16:14.3346462Z         },
2026-06-21T05:16:14.3346562Z         "impl": {
2026-06-21T05:16:14.3346680Z           "complete": true,
2026-06-21T05:16:14.3346867Z           "evidence": [
2026-06-21T05:16:14.3346972Z             {
2026-06-21T05:16:14.3347101Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3347210Z               "line": 449
2026-06-21T05:16:14.3347314Z             }
2026-06-21T05:16:14.3347412Z           ]
2026-06-21T05:16:14.3347515Z         },
2026-06-21T05:16:14.3347620Z         "int": {
2026-06-21T05:16:14.3347731Z           "complete": false,
2026-06-21T05:16:14.3347830Z           "evidence": []
2026-06-21T05:16:14.3347935Z         },
2026-06-21T05:16:14.3348041Z         "unit": {
2026-06-21T05:16:14.3348145Z           "complete": true,
2026-06-21T05:16:14.3348248Z           "evidence": [
2026-06-21T05:16:14.3348344Z             {
2026-06-21T05:16:14.3348485Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3348594Z               "line": 1397
2026-06-21T05:16:14.3348690Z             },
2026-06-21T05:16:14.3348795Z             {
2026-06-21T05:16:14.3348928Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3349124Z               "line": 1406
2026-06-21T05:16:14.3349209Z             },
2026-06-21T05:16:14.3349315Z             {
2026-06-21T05:16:14.3349434Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3349547Z               "line": 1422
2026-06-21T05:16:14.3349644Z             },
2026-06-21T05:16:14.3349739Z             {
2026-06-21T05:16:14.3349887Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3349983Z               "line": 1434
2026-06-21T05:16:14.3350086Z             },
2026-06-21T05:16:14.3350187Z             {
2026-06-21T05:16:14.3350331Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3350439Z               "line": 1454
2026-06-21T05:16:14.3350536Z             }
2026-06-21T05:16:14.3350632Z           ]
2026-06-21T05:16:14.3350730Z         }
2026-06-21T05:16:14.3350829Z       }
2026-06-21T05:16:14.3350915Z     },
2026-06-21T05:16:14.3351019Z     {
2026-06-21T05:16:14.3351142Z       "id": "REQ-INSTALL-1",
2026-06-21T05:16:14.3351348Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-21T05:16:14.3351461Z       "requiredStages": [
2026-06-21T05:16:14.3351557Z         "doc",
2026-06-21T05:16:14.3351657Z         "impl",
2026-06-21T05:16:14.3351756Z         "int"
2026-06-21T05:16:14.3351858Z       ],
2026-06-21T05:16:14.3351962Z       "stages": {
2026-06-21T05:16:14.3352057Z         "doc": {
2026-06-21T05:16:14.3352173Z           "complete": true,
2026-06-21T05:16:14.3352273Z           "evidence": [
2026-06-21T05:16:14.3352377Z             {
2026-06-21T05:16:14.3352492Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.3352592Z               "line": 754
2026-06-21T05:16:14.3352696Z             }
2026-06-21T05:16:14.3352787Z           ]
2026-06-21T05:16:14.3352879Z         },
2026-06-21T05:16:14.3352982Z         "impl": {
2026-06-21T05:16:14.3353088Z           "complete": true,
2026-06-21T05:16:14.3353194Z           "evidence": [
2026-06-21T05:16:14.3353301Z             {
2026-06-21T05:16:14.3353432Z               "path": "installer/install.ps1",
2026-06-21T05:16:14.3353537Z               "line": 57
2026-06-21T05:16:14.3353639Z             },
2026-06-21T05:16:14.3353734Z             {
2026-06-21T05:16:14.3353850Z               "path": "installer/install.sh",
2026-06-21T05:16:14.3354059Z               "line": 52
2026-06-21T05:16:14.3354160Z             }
2026-06-21T05:16:14.3354255Z           ]
2026-06-21T05:16:14.3354359Z         },
2026-06-21T05:16:14.3354461Z         "int": {
2026-06-21T05:16:14.3354565Z           "complete": true,
2026-06-21T05:16:14.3354679Z           "evidence": [
2026-06-21T05:16:14.3354775Z             {
2026-06-21T05:16:14.3354917Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-21T05:16:14.3355022Z               "line": 21
2026-06-21T05:16:14.3355123Z             }
2026-06-21T05:16:14.3355223Z           ]
2026-06-21T05:16:14.3355308Z         },
2026-06-21T05:16:14.3355532Z         "unit": {
2026-06-21T05:16:14.3355638Z           "complete": false,
2026-06-21T05:16:14.3355758Z           "evidence": []
2026-06-21T05:16:14.3355851Z         }
2026-06-21T05:16:14.3355956Z       }
2026-06-21T05:16:14.3356056Z     },
2026-06-21T05:16:14.3356154Z     {
2026-06-21T05:16:14.3356272Z       "id": "REQ-INSTALL-10",
2026-06-21T05:16:14.3357685Z       "title": "Windows at-logon autostart runs the daemon in the background with no persistent window: the scheduled task launches `spt daemon start` (which spawn_detaches a console-less DETACHED_PROCESS daemon and exits) rather than the foreground `spt daemon run` — Task Scheduler's interactive ONLOGON launch of a long-lived console process otherwise leaves a visible console window for the daemon's whole lifetime (v0.7.4)",
2026-06-21T05:16:14.3357789Z       "requiredStages": [
2026-06-21T05:16:14.3357894Z         "impl",
2026-06-21T05:16:14.3357986Z         "unit"
2026-06-21T05:16:14.3358089Z       ],
2026-06-21T05:16:14.3358194Z       "stages": {
2026-06-21T05:16:14.3358310Z         "doc": {
2026-06-21T05:16:14.3358418Z           "complete": false,
2026-06-21T05:16:14.3358524Z           "evidence": []
2026-06-21T05:16:14.3358630Z         },
2026-06-21T05:16:14.3358728Z         "impl": {
2026-06-21T05:16:14.3358837Z           "complete": true,
2026-06-21T05:16:14.3359026Z           "evidence": [
2026-06-21T05:16:14.3359139Z             {
2026-06-21T05:16:14.3359264Z               "path": "installer/install.ps1",
2026-06-21T05:16:14.3359369Z               "line": 191
2026-06-21T05:16:14.3359478Z             }
2026-06-21T05:16:14.3359575Z           ]
2026-06-21T05:16:14.3359670Z         },
2026-06-21T05:16:14.3359764Z         "int": {
2026-06-21T05:16:14.3359871Z           "complete": false,
2026-06-21T05:16:14.3359980Z           "evidence": []
2026-06-21T05:16:14.3360065Z         },
2026-06-21T05:16:14.3360170Z         "unit": {
2026-06-21T05:16:14.3360275Z           "complete": true,
2026-06-21T05:16:14.3360385Z           "evidence": [
2026-06-21T05:16:14.3360490Z             {
2026-06-21T05:16:14.3360633Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-21T05:16:14.3360733Z               "line": 211
2026-06-21T05:16:14.3360834Z             }
2026-06-21T05:16:14.3360929Z           ]
2026-06-21T05:16:14.3361024Z         }
2026-06-21T05:16:14.3361125Z       }
2026-06-21T05:16:14.3361220Z     },
2026-06-21T05:16:14.3361314Z     {
2026-06-21T05:16:14.3361427Z       "id": "REQ-INSTALL-11",
2026-06-21T05:16:14.3363185Z       "title": "Adapter command templates resolve their program against the adapter's install dir BEFORE PATH: a `.spt`-shipped binary (dropped to adapters/_github/<safe>/ by --release/--github acquisition, or kept in the source_dir under copy-mode where only manifest+strings/ are copied to adapters/<name>) runs without any PATH placement — a bare-name template token (e.g. `claude-spt-digest ...`) is rewritten to <install_dir>/<program>(.exe on Windows) when that file exists, else left bare for the PATH fallback. Makes a `.spt` self-contained (closes the --release bundled-binary gap perri confirmed) (v0.7.4)",
2026-06-21T05:16:14.3363309Z       "requiredStages": [
2026-06-21T05:16:14.3363410Z         "doc",
2026-06-21T05:16:14.3363514Z         "impl",
2026-06-21T05:16:14.3363614Z         "unit"
2026-06-21T05:16:14.3363706Z       ],
2026-06-21T05:16:14.3363815Z       "stages": {
2026-06-21T05:16:14.3364030Z         "doc": {
2026-06-21T05:16:14.3364139Z           "complete": true,
2026-06-21T05:16:14.3364247Z           "evidence": [
2026-06-21T05:16:14.3364348Z             {
2026-06-21T05:16:14.3364454Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.3364557Z               "line": 138
2026-06-21T05:16:14.3364663Z             },
2026-06-21T05:16:14.3364762Z             {
2026-06-21T05:16:14.3364876Z               "path": "docs/MANIFEST.md",
2026-06-21T05:16:14.3364978Z               "line": 82
2026-06-21T05:16:14.3365068Z             }
2026-06-21T05:16:14.3365163Z           ]
2026-06-21T05:16:14.3365263Z         },
2026-06-21T05:16:14.3365473Z         "impl": {
2026-06-21T05:16:14.3365577Z           "complete": true,
2026-06-21T05:16:14.3365688Z           "evidence": [
2026-06-21T05:16:14.3365793Z             {
2026-06-21T05:16:14.3365922Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-21T05:16:14.3366031Z               "line": 223
2026-06-21T05:16:14.3366135Z             },
2026-06-21T05:16:14.3366236Z             {
2026-06-21T05:16:14.3366369Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.3366478Z               "line": 99
2026-06-21T05:16:14.3366582Z             },
2026-06-21T05:16:14.3366682Z             {
2026-06-21T05:16:14.3366819Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.3366924Z               "line": 117
2026-06-21T05:16:14.3367025Z             },
2026-06-21T05:16:14.3367124Z             {
2026-06-21T05:16:14.3367268Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-21T05:16:14.3367377Z               "line": 332
2026-06-21T05:16:14.3367486Z             },
2026-06-21T05:16:14.3367578Z             {
2026-06-21T05:16:14.3367706Z               "path": "crates/spt-live/src/digest.rs",
2026-06-21T05:16:14.3367815Z               "line": 88
2026-06-21T05:16:14.3367912Z             },
2026-06-21T05:16:14.3368016Z             {
2026-06-21T05:16:14.3368144Z               "path": "crates/spt-live/src/digest.rs",
2026-06-21T05:16:14.3368264Z               "line": 104
2026-06-21T05:16:14.3368368Z             },
2026-06-21T05:16:14.3368464Z             {
2026-06-21T05:16:14.3368597Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.3368707Z               "line": 297
2026-06-21T05:16:14.3368803Z             },
2026-06-21T05:16:14.3368912Z             {
2026-06-21T05:16:14.3369128Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.3369232Z               "line": 332
2026-06-21T05:16:14.3369331Z             },
2026-06-21T05:16:14.3369436Z             {
2026-06-21T05:16:14.3369568Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.3369681Z               "line": 523
2026-06-21T05:16:14.3369786Z             },
2026-06-21T05:16:14.3369887Z             {
2026-06-21T05:16:14.3370015Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.3370121Z               "line": 546
2026-06-21T05:16:14.3370230Z             },
2026-06-21T05:16:14.3370334Z             {
2026-06-21T05:16:14.3370469Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.3370569Z               "line": 561
2026-06-21T05:16:14.3370668Z             },
2026-06-21T05:16:14.3370770Z             {
2026-06-21T05:16:14.3370892Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T05:16:14.3370997Z               "line": 492
2026-06-21T05:16:14.3371094Z             }
2026-06-21T05:16:14.3371188Z           ]
2026-06-21T05:16:14.3371293Z         },
2026-06-21T05:16:14.3371394Z         "int": {
2026-06-21T05:16:14.3371503Z           "complete": false,
2026-06-21T05:16:14.3371608Z           "evidence": []
2026-06-21T05:16:14.3371714Z         },
2026-06-21T05:16:14.3371808Z         "unit": {
2026-06-21T05:16:14.3371921Z           "complete": true,
2026-06-21T05:16:14.3372036Z           "evidence": [
2026-06-21T05:16:14.3372144Z             {
2026-06-21T05:16:14.3372286Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.3372492Z               "line": 799
2026-06-21T05:16:14.3372595Z             },
2026-06-21T05:16:14.3372702Z             {
2026-06-21T05:16:14.3372839Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.3372944Z               "line": 811
2026-06-21T05:16:14.3373035Z             },
2026-06-21T05:16:14.3373130Z             {
2026-06-21T05:16:14.3373259Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.3373369Z               "line": 820
2026-06-21T05:16:14.3373479Z             }
2026-06-21T05:16:14.3373569Z           ]
2026-06-21T05:16:14.3373670Z         }
2026-06-21T05:16:14.3373869Z       }
2026-06-21T05:16:14.3373975Z     },
2026-06-21T05:16:14.3374074Z     {
2026-06-21T05:16:14.3374193Z       "id": "REQ-INSTALL-12",
2026-06-21T05:16:14.3376811Z       "title": "Durable active-profile pointer for bind-time profile selection (ADR-0021): adapters/active-profiles.toml at the registry ROOT (sibling to the per-adapter <name>/ dirs, so adapter add/update/remove — which only rewrite a <name>/ subdir — can never clobber it), a flat host_binary → \"adapter[:profile]\" map. Read at bind as the PRIMARY profile selector; unset → the registered_at_ms fallback (REQ-START-5). Written ONLY by `spt adapter use <adapter>[:profile]` (resolves the adapter's host_binaries → sets each binary→adapter[:profile]); `spt adapter use --clear <adapter|binary>` drops. NEVER auto-written by install/update/adapter add (that is precisely what would let an update silently flip the active profile). A stale pointer (uninstalled adapter / deleted profile) self-heals: ignored, fall back, warn once. Pruned on adapter remove. Atomic write (spt_store atomic). (v0.9.0)",
2026-06-21T05:16:14.3376962Z       "requiredStages": [
2026-06-21T05:16:14.3377062Z         "doc",
2026-06-21T05:16:14.3377162Z         "impl",
2026-06-21T05:16:14.3377261Z         "unit",
2026-06-21T05:16:14.3377360Z         "int"
2026-06-21T05:16:14.3377451Z       ],
2026-06-21T05:16:14.3377581Z       "stages": {
2026-06-21T05:16:14.3377689Z         "doc": {
2026-06-21T05:16:14.3377799Z           "complete": true,
2026-06-21T05:16:14.3377914Z           "evidence": [
2026-06-21T05:16:14.3378013Z             {
2026-06-21T05:16:14.3378138Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.3378233Z               "line": 185
2026-06-21T05:16:14.3378342Z             }
2026-06-21T05:16:14.3378438Z           ]
2026-06-21T05:16:14.3378547Z         },
2026-06-21T05:16:14.3378647Z         "impl": {
2026-06-21T05:16:14.3378748Z           "complete": true,
2026-06-21T05:16:14.3378857Z           "evidence": [
2026-06-21T05:16:14.3379034Z             {
2026-06-21T05:16:14.3379176Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T05:16:14.3379291Z               "line": 27
2026-06-21T05:16:14.3379397Z             },
2026-06-21T05:16:14.3379500Z             {
2026-06-21T05:16:14.3379639Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T05:16:14.3379750Z               "line": 223
2026-06-21T05:16:14.3379853Z             },
2026-06-21T05:16:14.3379957Z             {
2026-06-21T05:16:14.3380077Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3380174Z               "line": 5677
2026-06-21T05:16:14.3380288Z             }
2026-06-21T05:16:14.3380385Z           ]
2026-06-21T05:16:14.3380480Z         },
2026-06-21T05:16:14.3380584Z         "int": {
2026-06-21T05:16:14.3380691Z           "complete": true,
2026-06-21T05:16:14.3380795Z           "evidence": [
2026-06-21T05:16:14.3380899Z             {
2026-06-21T05:16:14.3381048Z               "path": "crates/spt/tests/live_resolve_e2e.rs",
2026-06-21T05:16:14.3381147Z               "line": 19
2026-06-21T05:16:14.3381252Z             }
2026-06-21T05:16:14.3381349Z           ]
2026-06-21T05:16:14.3381448Z         },
2026-06-21T05:16:14.3381543Z         "unit": {
2026-06-21T05:16:14.3381654Z           "complete": true,
2026-06-21T05:16:14.3381758Z           "evidence": [
2026-06-21T05:16:14.3381974Z             {
2026-06-21T05:16:14.3382115Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T05:16:14.3382216Z               "line": 395
2026-06-21T05:16:14.3382321Z             },
2026-06-21T05:16:14.3382425Z             {
2026-06-21T05:16:14.3382553Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T05:16:14.3382662Z               "line": 421
2026-06-21T05:16:14.3382765Z             },
2026-06-21T05:16:14.3382870Z             {
2026-06-21T05:16:14.3383004Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T05:16:14.3383104Z               "line": 440
2026-06-21T05:16:14.3383208Z             },
2026-06-21T05:16:14.3383404Z             {
2026-06-21T05:16:14.3383543Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T05:16:14.3383643Z               "line": 475
2026-06-21T05:16:14.3383752Z             },
2026-06-21T05:16:14.3383838Z             {
2026-06-21T05:16:14.3383962Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3384086Z               "line": 8665
2026-06-21T05:16:14.3384182Z             }
2026-06-21T05:16:14.3384287Z           ]
2026-06-21T05:16:14.3384382Z         }
2026-06-21T05:16:14.3384487Z       }
2026-06-21T05:16:14.3384587Z     },
2026-06-21T05:16:14.3384687Z     {
2026-06-21T05:16:14.3384792Z       "id": "REQ-INSTALL-2",
2026-06-21T05:16:14.3384939Z       "title": "Marketplace-repackaging-friendly install",
2026-06-21T05:16:14.3385054Z       "requiredStages": [
2026-06-21T05:16:14.3385146Z         "doc"
2026-06-21T05:16:14.3385250Z       ],
2026-06-21T05:16:14.3385348Z       "stages": {
2026-06-21T05:16:14.3385458Z         "doc": {
2026-06-21T05:16:14.3385574Z           "complete": true,
2026-06-21T05:16:14.3385682Z           "evidence": [
2026-06-21T05:16:14.3385778Z             {
2026-06-21T05:16:14.3385888Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.3386001Z               "line": 755
2026-06-21T05:16:14.3386098Z             }
2026-06-21T05:16:14.3386198Z           ]
2026-06-21T05:16:14.3386311Z         },
2026-06-21T05:16:14.3386412Z         "impl": {
2026-06-21T05:16:14.3386527Z           "complete": false,
2026-06-21T05:16:14.3386631Z           "evidence": []
2026-06-21T05:16:14.3386737Z         },
2026-06-21T05:16:14.3386832Z         "int": {
2026-06-21T05:16:14.3386941Z           "complete": false,
2026-06-21T05:16:14.3387047Z           "evidence": []
2026-06-21T05:16:14.3387137Z         },
2026-06-21T05:16:14.3387246Z         "unit": {
2026-06-21T05:16:14.3387356Z           "complete": false,
2026-06-21T05:16:14.3387462Z           "evidence": []
2026-06-21T05:16:14.3387560Z         }
2026-06-21T05:16:14.3387659Z       }
2026-06-21T05:16:14.3387765Z     },
2026-06-21T05:16:14.3387872Z     {
2026-06-21T05:16:14.3387986Z       "id": "REQ-INSTALL-3",
2026-06-21T05:16:14.3388136Z       "title": "Idempotent + interactive-optional first run",
2026-06-21T05:16:14.3388249Z       "requiredStages": [
2026-06-21T05:16:14.3388349Z         "impl",
2026-06-21T05:16:14.3388454Z         "int"
2026-06-21T05:16:14.3388558Z       ],
2026-06-21T05:16:14.3388669Z       "stages": {
2026-06-21T05:16:14.3388774Z         "doc": {
2026-06-21T05:16:14.3388883Z           "complete": false,
2026-06-21T05:16:14.3389056Z           "evidence": []
2026-06-21T05:16:14.3389155Z         },
2026-06-21T05:16:14.3389255Z         "impl": {
2026-06-21T05:16:14.3389366Z           "complete": true,
2026-06-21T05:16:14.3389484Z           "evidence": [
2026-06-21T05:16:14.3389589Z             {
2026-06-21T05:16:14.3389718Z               "path": "installer/install.ps1",
2026-06-21T05:16:14.3389827Z               "line": 100
2026-06-21T05:16:14.3389919Z             },
2026-06-21T05:16:14.3390028Z             {
2026-06-21T05:16:14.3390147Z               "path": "installer/install.ps1",
2026-06-21T05:16:14.3390253Z               "line": 111
2026-06-21T05:16:14.3390357Z             },
2026-06-21T05:16:14.3390456Z             {
2026-06-21T05:16:14.3390584Z               "path": "installer/install.sh",
2026-06-21T05:16:14.3390689Z               "line": 79
2026-06-21T05:16:14.3390897Z             }
2026-06-21T05:16:14.3390998Z           ]
2026-06-21T05:16:14.3391101Z         },
2026-06-21T05:16:14.3391207Z         "int": {
2026-06-21T05:16:14.3391307Z           "complete": true,
2026-06-21T05:16:14.3391416Z           "evidence": [
2026-06-21T05:16:14.3391522Z             {
2026-06-21T05:16:14.3391660Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-21T05:16:14.3391759Z               "line": 167
2026-06-21T05:16:14.3391851Z             }
2026-06-21T05:16:14.3391955Z           ]
2026-06-21T05:16:14.3392055Z         },
2026-06-21T05:16:14.3392156Z         "unit": {
2026-06-21T05:16:14.3392375Z           "complete": false,
2026-06-21T05:16:14.3392481Z           "evidence": []
2026-06-21T05:16:14.3392581Z         }
2026-06-21T05:16:14.3392670Z       }
2026-06-21T05:16:14.3392776Z     },
2026-06-21T05:16:14.3392877Z     {
2026-06-21T05:16:14.3392994Z       "id": "REQ-INSTALL-4",
2026-06-21T05:16:14.3393621Z       "title": "Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over",
2026-06-21T05:16:14.3393735Z       "requiredStages": [
2026-06-21T05:16:14.3393822Z         "impl",
2026-06-21T05:16:14.3393908Z         "unit"
2026-06-21T05:16:14.3393997Z       ],
2026-06-21T05:16:14.3394084Z       "stages": {
2026-06-21T05:16:14.3394174Z         "doc": {
2026-06-21T05:16:14.3394265Z           "complete": false,
2026-06-21T05:16:14.3394359Z           "evidence": []
2026-06-21T05:16:14.3394452Z         },
2026-06-21T05:16:14.3394527Z         "impl": {
2026-06-21T05:16:14.3394636Z           "complete": true,
2026-06-21T05:16:14.3394727Z           "evidence": [
2026-06-21T05:16:14.3394809Z             {
2026-06-21T05:16:14.3394951Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T05:16:14.3395038Z               "line": 165
2026-06-21T05:16:14.3395133Z             },
2026-06-21T05:16:14.3395218Z             {
2026-06-21T05:16:14.3395353Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.3395443Z               "line": 29
2026-06-21T05:16:14.3395528Z             },
2026-06-21T05:16:14.3395614Z             {
2026-06-21T05:16:14.3395739Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.3395828Z               "line": 288
2026-06-21T05:16:14.3395918Z             },
2026-06-21T05:16:14.3396004Z             {
2026-06-21T05:16:14.3396124Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.3396219Z               "line": 356
2026-06-21T05:16:14.3396314Z             },
2026-06-21T05:16:14.3396405Z             {
2026-06-21T05:16:14.3396533Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.3396629Z               "line": 386
2026-06-21T05:16:14.3396725Z             },
2026-06-21T05:16:14.3396806Z             {
2026-06-21T05:16:14.3396934Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.3397025Z               "line": 434
2026-06-21T05:16:14.3397101Z             },
2026-06-21T05:16:14.3397191Z             {
2026-06-21T05:16:14.3397302Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3397392Z               "line": 5396
2026-06-21T05:16:14.3397478Z             }
2026-06-21T05:16:14.3397563Z           ]
2026-06-21T05:16:14.3397645Z         },
2026-06-21T05:16:14.3397740Z         "int": {
2026-06-21T05:16:14.3397840Z           "complete": false,
2026-06-21T05:16:14.3397921Z           "evidence": []
2026-06-21T05:16:14.3398008Z         },
2026-06-21T05:16:14.3398097Z         "unit": {
2026-06-21T05:16:14.3398201Z           "complete": true,
2026-06-21T05:16:14.3398292Z           "evidence": [
2026-06-21T05:16:14.3398377Z             {
2026-06-21T05:16:14.3398513Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T05:16:14.3398600Z               "line": 375
2026-06-21T05:16:14.3398766Z             },
2026-06-21T05:16:14.3398852Z             {
2026-06-21T05:16:14.3399057Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.3399152Z               "line": 808
2026-06-21T05:16:14.3399234Z             },
2026-06-21T05:16:14.3399320Z             {
2026-06-21T05:16:14.3399462Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.3399558Z               "line": 849
2026-06-21T05:16:14.3399644Z             },
2026-06-21T05:16:14.3399725Z             {
2026-06-21T05:16:14.3399859Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.3399945Z               "line": 869
2026-06-21T05:16:14.3400130Z             },
2026-06-21T05:16:14.3400212Z             {
2026-06-21T05:16:14.3400325Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3400406Z               "line": 8403
2026-06-21T05:16:14.3400494Z             }
2026-06-21T05:16:14.3400584Z           ]
2026-06-21T05:16:14.3400663Z         }
2026-06-21T05:16:14.3400755Z       }
2026-06-21T05:16:14.3400837Z     },
2026-06-21T05:16:14.3400922Z     {
2026-06-21T05:16:14.3401021Z       "id": "REQ-INSTALL-5",
2026-06-21T05:16:14.3401490Z       "title": "Non-interactive install path: the canonical one-liner doubles as every adapter's pack-in on-demand install (no second mechanism); sha256-verified fetch; user-PATH registration",
2026-06-21T05:16:14.3401592Z       "requiredStages": [
2026-06-21T05:16:14.3401676Z         "impl",
2026-06-21T05:16:14.3401772Z         "int"
2026-06-21T05:16:14.3401853Z       ],
2026-06-21T05:16:14.3401939Z       "stages": {
2026-06-21T05:16:14.3402024Z         "doc": {
2026-06-21T05:16:14.3402125Z           "complete": false,
2026-06-21T05:16:14.3402225Z           "evidence": []
2026-06-21T05:16:14.3402305Z         },
2026-06-21T05:16:14.3402396Z         "impl": {
2026-06-21T05:16:14.3402493Z           "complete": true,
2026-06-21T05:16:14.3402588Z           "evidence": [
2026-06-21T05:16:14.3402673Z             {
2026-06-21T05:16:14.3402784Z               "path": "installer/install.ps1",
2026-06-21T05:16:14.3402868Z               "line": 5
2026-06-21T05:16:14.3402949Z             },
2026-06-21T05:16:14.3403041Z             {
2026-06-21T05:16:14.3403136Z               "path": "installer/install.sh",
2026-06-21T05:16:14.3403230Z               "line": 6
2026-06-21T05:16:14.3403307Z             }
2026-06-21T05:16:14.3403399Z           ]
2026-06-21T05:16:14.3403488Z         },
2026-06-21T05:16:14.3403573Z         "int": {
2026-06-21T05:16:14.3403663Z           "complete": true,
2026-06-21T05:16:14.3403759Z           "evidence": [
2026-06-21T05:16:14.3403847Z             {
2026-06-21T05:16:14.3403970Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-21T05:16:14.3404062Z               "line": 22
2026-06-21T05:16:14.3404148Z             }
2026-06-21T05:16:14.3404233Z           ]
2026-06-21T05:16:14.3404319Z         },
2026-06-21T05:16:14.3404406Z         "unit": {
2026-06-21T05:16:14.3404510Z           "complete": false,
2026-06-21T05:16:14.3404600Z           "evidence": []
2026-06-21T05:16:14.3404688Z         }
2026-06-21T05:16:14.3404768Z       }
2026-06-21T05:16:14.3404853Z     },
2026-06-21T05:16:14.3404944Z     {
2026-06-21T05:16:14.3405031Z       "id": "REQ-INSTALL-6",
2026-06-21T05:16:14.3406203Z       "title": "Linux elevation install leg: install.sh symlinks the binary into a sudo-reachable path (/usr/local/bin; graceful print-the-one-liner when unelevated) so sudo spt resolves; first sudo spt detects elevation and prompts ONCE for the default user account — thereafter any elevated daemon launch runs daemon + state under that account, never root (KH 5.7 interplay verified) (M8 decision 8)",
2026-06-21T05:16:14.3406314Z       "requiredStages": [
2026-06-21T05:16:14.3406402Z         "impl",
2026-06-21T05:16:14.3406497Z         "unit"
2026-06-21T05:16:14.3406578Z       ],
2026-06-21T05:16:14.3406670Z       "stages": {
2026-06-21T05:16:14.3406760Z         "doc": {
2026-06-21T05:16:14.3410017Z           "complete": false,
2026-06-21T05:16:14.3410299Z           "evidence": []
2026-06-21T05:16:14.3410390Z         },
2026-06-21T05:16:14.3410471Z         "impl": {
2026-06-21T05:16:14.3410561Z           "complete": true,
2026-06-21T05:16:14.3410647Z           "evidence": [
2026-06-21T05:16:14.3410729Z             {
2026-06-21T05:16:14.3410857Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.3410953Z               "line": 61
2026-06-21T05:16:14.3411039Z             },
2026-06-21T05:16:14.3411115Z             {
2026-06-21T05:16:14.3411243Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.3411335Z               "line": 641
2026-06-21T05:16:14.3411416Z             },
2026-06-21T05:16:14.3411605Z             {
2026-06-21T05:16:14.3411733Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T05:16:14.3411827Z               "line": 191
2026-06-21T05:16:14.3411907Z             },
2026-06-21T05:16:14.3411993Z             {
2026-06-21T05:16:14.3412122Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T05:16:14.3412212Z               "line": 276
2026-06-21T05:16:14.3412293Z             },
2026-06-21T05:16:14.3412385Z             {
2026-06-21T05:16:14.3412495Z               "path": "crates/spt/src/main.rs",
2026-06-21T05:16:14.3412584Z               "line": 43
2026-06-21T05:16:14.3412666Z             },
2026-06-21T05:16:14.3412752Z             {
2026-06-21T05:16:14.3412856Z               "path": "installer/install.sh",
2026-06-21T05:16:14.3412937Z               "line": 104
2026-06-21T05:16:14.3413019Z             }
2026-06-21T05:16:14.3413109Z           ]
2026-06-21T05:16:14.3413190Z         },
2026-06-21T05:16:14.3413276Z         "int": {
2026-06-21T05:16:14.3413382Z           "complete": false,
2026-06-21T05:16:14.3413466Z           "evidence": []
2026-06-21T05:16:14.3413553Z         },
2026-06-21T05:16:14.3413639Z         "unit": {
2026-06-21T05:16:14.3413725Z           "complete": true,
2026-06-21T05:16:14.3413810Z           "evidence": [
2026-06-21T05:16:14.3413901Z             {
2026-06-21T05:16:14.3414030Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-21T05:16:14.3414114Z               "line": 894
2026-06-21T05:16:14.3414199Z             }
2026-06-21T05:16:14.3414286Z           ]
2026-06-21T05:16:14.3414380Z         }
2026-06-21T05:16:14.3414455Z       }
2026-06-21T05:16:14.3414540Z     },
2026-06-21T05:16:14.3414627Z     {
2026-06-21T05:16:14.3414727Z       "id": "REQ-INSTALL-7",
2026-06-21T05:16:14.3415853Z       "title": "Windows inbound reachability: the elevated install leg registers the inbound-UDP firewall rule (New-NetFirewallRule); the daemon self-detects blocked inbound and renders it as the no-connection state in subnet status + the coming-online banner (covers user-scope installs that skip the elevated leg — never a silent NO_SEED_HOLDER dead-end) (M8 root cause 3)",
2026-06-21T05:16:14.3415962Z       "requiredStages": [
2026-06-21T05:16:14.3416052Z         "impl"
2026-06-21T05:16:14.3416143Z       ],
2026-06-21T05:16:14.3416230Z       "stages": {
2026-06-21T05:16:14.3416319Z         "doc": {
2026-06-21T05:16:14.3416429Z           "complete": false,
2026-06-21T05:16:14.3416516Z           "evidence": []
2026-06-21T05:16:14.3416606Z         },
2026-06-21T05:16:14.3416687Z         "impl": {
2026-06-21T05:16:14.3416778Z           "complete": true,
2026-06-21T05:16:14.3416869Z           "evidence": [
2026-06-21T05:16:14.3416953Z             {
2026-06-21T05:16:14.3417066Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3417148Z               "line": 3920
2026-06-21T05:16:14.3417235Z             },
2026-06-21T05:16:14.3417320Z             {
2026-06-21T05:16:14.3417429Z               "path": "installer/install.ps1",
2026-06-21T05:16:14.3417535Z               "line": 157
2026-06-21T05:16:14.3417616Z             }
2026-06-21T05:16:14.3417701Z           ]
2026-06-21T05:16:14.3417778Z         },
2026-06-21T05:16:14.3417864Z         "int": {
2026-06-21T05:16:14.3417959Z           "complete": false,
2026-06-21T05:16:14.3418136Z           "evidence": []
2026-06-21T05:16:14.3418217Z         },
2026-06-21T05:16:14.3418311Z         "unit": {
2026-06-21T05:16:14.3418407Z           "complete": false,
2026-06-21T05:16:14.3418493Z           "evidence": []
2026-06-21T05:16:14.3418579Z         }
2026-06-21T05:16:14.3418664Z       }
2026-06-21T05:16:14.3418747Z     },
2026-06-21T05:16:14.3418822Z     {
2026-06-21T05:16:14.3418917Z       "id": "REQ-INSTALL-8",
2026-06-21T05:16:14.3420044Z       "title": "OS-service registration (REQ-INSTALL-1's deferred third leg): Linux systemd USER service + loginctl enable-linger (linger rides the elevated install leg; daemon starts at boot pre-login, user universe per KH 5.7, systemctl --user managed); Windows scheduled task at-logon (interactive session, no stored credentials); a node is reachable after reboot without any manual spt invocation (M8 decision 17)",
2026-06-21T05:16:14.3420244Z       "requiredStages": [
2026-06-21T05:16:14.3420340Z         "impl"
2026-06-21T05:16:14.3420421Z       ],
2026-06-21T05:16:14.3420511Z       "stages": {
2026-06-21T05:16:14.3420596Z         "doc": {
2026-06-21T05:16:14.3420688Z           "complete": false,
2026-06-21T05:16:14.3420779Z           "evidence": []
2026-06-21T05:16:14.3420864Z         },
2026-06-21T05:16:14.3420950Z         "impl": {
2026-06-21T05:16:14.3421051Z           "complete": true,
2026-06-21T05:16:14.3421136Z           "evidence": [
2026-06-21T05:16:14.3421221Z             {
2026-06-21T05:16:14.3421328Z               "path": "installer/install.ps1",
2026-06-21T05:16:14.3421422Z               "line": 184
2026-06-21T05:16:14.3421503Z             },
2026-06-21T05:16:14.3421589Z             {
2026-06-21T05:16:14.3421699Z               "path": "installer/install.sh",
2026-06-21T05:16:14.3421793Z               "line": 121
2026-06-21T05:16:14.3421875Z             }
2026-06-21T05:16:14.3421958Z           ]
2026-06-21T05:16:14.3422038Z         },
2026-06-21T05:16:14.3422117Z         "int": {
2026-06-21T05:16:14.3422217Z           "complete": false,
2026-06-21T05:16:14.3422303Z           "evidence": []
2026-06-21T05:16:14.3422387Z         },
2026-06-21T05:16:14.3422476Z         "unit": {
2026-06-21T05:16:14.3422568Z           "complete": false,
2026-06-21T05:16:14.3422659Z           "evidence": []
2026-06-21T05:16:14.3422735Z         }
2026-06-21T05:16:14.3422820Z       }
2026-06-21T05:16:14.3422907Z     },
2026-06-21T05:16:14.3422993Z     {
2026-06-21T05:16:14.3423087Z       "id": "REQ-INSTALL-9",
2026-06-21T05:16:14.3424252Z       "title": "Adapter add from a GitHub release archive: `spt adapter add --release <user/repo> [--tag <tag>] [--asset <name>]` fetches a `.spt` tar asset over HTTPS+GitHub trust, extracts it to the durable adapters/_github home, and registers the root — ships built binaries source-free and versioned (the distribution path for an adapter whose dev repo is a monorepo subdir, where --github root-only clone does not fit)",
2026-06-21T05:16:14.3424360Z       "requiredStages": [
2026-06-21T05:16:14.3424442Z         "doc",
2026-06-21T05:16:14.3424533Z         "impl",
2026-06-21T05:16:14.3424623Z         "unit"
2026-06-21T05:16:14.3424708Z       ],
2026-06-21T05:16:14.3424793Z       "stages": {
2026-06-21T05:16:14.3424889Z         "doc": {
2026-06-21T05:16:14.3424987Z           "complete": true,
2026-06-21T05:16:14.3425077Z           "evidence": [
2026-06-21T05:16:14.3425158Z             {
2026-06-21T05:16:14.3425250Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.3425334Z               "line": 771
2026-06-21T05:16:14.3425420Z             }
2026-06-21T05:16:14.3425503Z           ]
2026-06-21T05:16:14.3425588Z         },
2026-06-21T05:16:14.3425673Z         "impl": {
2026-06-21T05:16:14.3425769Z           "complete": true,
2026-06-21T05:16:14.3425883Z           "evidence": [
2026-06-21T05:16:14.3425964Z             {
2026-06-21T05:16:14.3426074Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3426165Z               "line": 2535
2026-06-21T05:16:14.3426255Z             },
2026-06-21T05:16:14.3426341Z             {
2026-06-21T05:16:14.3426575Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3426670Z               "line": 2559
2026-06-21T05:16:14.3426752Z             }
2026-06-21T05:16:14.3426837Z           ]
2026-06-21T05:16:14.3426918Z         },
2026-06-21T05:16:14.3427004Z         "int": {
2026-06-21T05:16:14.3427091Z           "complete": false,
2026-06-21T05:16:14.3427185Z           "evidence": []
2026-06-21T05:16:14.3427266Z         },
2026-06-21T05:16:14.3427343Z         "unit": {
2026-06-21T05:16:14.3427439Z           "complete": true,
2026-06-21T05:16:14.3427523Z           "evidence": [
2026-06-21T05:16:14.3427613Z             {
2026-06-21T05:16:14.3427713Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3427889Z               "line": 7591
2026-06-21T05:16:14.3427970Z             },
2026-06-21T05:16:14.3428057Z             {
2026-06-21T05:16:14.3428162Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3428252Z               "line": 8433
2026-06-21T05:16:14.3428333Z             }
2026-06-21T05:16:14.3428428Z           ]
2026-06-21T05:16:14.3428519Z         }
2026-06-21T05:16:14.3428609Z       }
2026-06-21T05:16:14.3428692Z     },
2026-06-21T05:16:14.3428777Z     {
2026-06-21T05:16:14.3428866Z       "id": "REQ-KICK-1",
2026-06-21T05:16:14.3431377Z       "title": "Explicit, loud controller displacement: `spt rc kick <target>` / `--take` (Take intent) kicks the incumbent controller and becomes controller; the displaced controller receives a LOUD `Displaced{by}` notice and is FULLY DETACHED (not demoted to a viewer). A default attach to a controlled endpoint is NEVER a silent displace (it is the Control busy-refusal). An old (N-1) rc omits intent → Control, so it can drive a free endpoint but CANNOT `--take` — it can never silently steal, and gets a clean busy-refusal instead. Taking control rides the same access_check(endpoint, origin, Unsolicited) as a normal control attach (if you may drive, you may take — no elevated kick policy). The picker surfaces 'Kick <node> and attach' (Take) only on a controlled (blue ■) endpoint, via the existing attach dispatch (single-bringup-path: intent is a parameter).",
2026-06-21T05:16:14.3431486Z       "requiredStages": [
2026-06-21T05:16:14.3431573Z         "doc",
2026-06-21T05:16:14.3431658Z         "impl",
2026-06-21T05:16:14.3431739Z         "unit",
2026-06-21T05:16:14.3431825Z         "int"
2026-06-21T05:16:14.3431902Z       ],
2026-06-21T05:16:14.3431987Z       "stages": {
2026-06-21T05:16:14.3432068Z         "doc": {
2026-06-21T05:16:14.3432154Z           "complete": true,
2026-06-21T05:16:14.3432250Z           "evidence": [
2026-06-21T05:16:14.3432330Z             {
2026-06-21T05:16:14.3432430Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.3432550Z               "line": 342
2026-06-21T05:16:14.3432630Z             }
2026-06-21T05:16:14.3432720Z           ]
2026-06-21T05:16:14.3432801Z         },
2026-06-21T05:16:14.3432887Z         "impl": {
2026-06-21T05:16:14.3432971Z           "complete": true,
2026-06-21T05:16:14.3433070Z           "evidence": [
2026-06-21T05:16:14.3433157Z             {
2026-06-21T05:16:14.3433281Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-21T05:16:14.3433375Z               "line": 41
2026-06-21T05:16:14.3433452Z             },
2026-06-21T05:16:14.3433544Z             {
2026-06-21T05:16:14.3433652Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.3433738Z               "line": 701
2026-06-21T05:16:14.3433815Z             }
2026-06-21T05:16:14.3433901Z           ]
2026-06-21T05:16:14.3433991Z         },
2026-06-21T05:16:14.3434072Z         "int": {
2026-06-21T05:16:14.3434163Z           "complete": true,
2026-06-21T05:16:14.3434263Z           "evidence": [
2026-06-21T05:16:14.3434343Z             {
2026-06-21T05:16:14.3434464Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T05:16:14.3434544Z               "line": 913
2026-06-21T05:16:14.3434630Z             }
2026-06-21T05:16:14.3434716Z           ]
2026-06-21T05:16:14.3434798Z         },
2026-06-21T05:16:14.3434997Z         "unit": {
2026-06-21T05:16:14.3435089Z           "complete": true,
2026-06-21T05:16:14.3435183Z           "evidence": [
2026-06-21T05:16:14.3435258Z             {
2026-06-21T05:16:14.3435387Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-21T05:16:14.3435472Z               "line": 205
2026-06-21T05:16:14.3435556Z             }
2026-06-21T05:16:14.3435647Z           ]
2026-06-21T05:16:14.3435728Z         }
2026-06-21T05:16:14.3435810Z       }
2026-06-21T05:16:14.3435895Z     },
2026-06-21T05:16:14.3435980Z     {
2026-06-21T05:16:14.3436077Z       "id": "REQ-MANIFEST-1",
2026-06-21T05:16:14.3436266Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-21T05:16:14.3436462Z       "requiredStages": [
2026-06-21T05:16:14.3436552Z         "doc",
2026-06-21T05:16:14.3436644Z         "impl",
2026-06-21T05:16:14.3436725Z         "unit"
2026-06-21T05:16:14.3436810Z       ],
2026-06-21T05:16:14.3436896Z       "stages": {
2026-06-21T05:16:14.3436992Z         "doc": {
2026-06-21T05:16:14.3437092Z           "complete": true,
2026-06-21T05:16:14.3437168Z           "evidence": [
2026-06-21T05:16:14.3437259Z             {
2026-06-21T05:16:14.3437360Z               "path": "docs/MANIFEST.md",
2026-06-21T05:16:14.3437453Z               "line": 19
2026-06-21T05:16:14.3437535Z             }
2026-06-21T05:16:14.3437622Z           ]
2026-06-21T05:16:14.3437708Z         },
2026-06-21T05:16:14.3437797Z         "impl": {
2026-06-21T05:16:14.3437898Z           "complete": true,
2026-06-21T05:16:14.3437975Z           "evidence": [
2026-06-21T05:16:14.3438060Z             {
2026-06-21T05:16:14.3438173Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.3438278Z               "line": 18
2026-06-21T05:16:14.3438370Z             }
2026-06-21T05:16:14.3438445Z           ]
2026-06-21T05:16:14.3438530Z         },
2026-06-21T05:16:14.3438612Z         "int": {
2026-06-21T05:16:14.3438713Z           "complete": false,
2026-06-21T05:16:14.3438807Z           "evidence": []
2026-06-21T05:16:14.3438894Z         },
2026-06-21T05:16:14.3439060Z         "unit": {
2026-06-21T05:16:14.3439141Z           "complete": true,
2026-06-21T05:16:14.3439232Z           "evidence": [
2026-06-21T05:16:14.3439304Z             {
2026-06-21T05:16:14.3439436Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.3439528Z               "line": 1029
2026-06-21T05:16:14.3439614Z             },
2026-06-21T05:16:14.3439694Z             {
2026-06-21T05:16:14.3439813Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.3439896Z               "line": 1325
2026-06-21T05:16:14.3439975Z             },
2026-06-21T05:16:14.3440070Z             {
2026-06-21T05:16:14.3440181Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.3440276Z               "line": 1337
2026-06-21T05:16:14.3440347Z             },
2026-06-21T05:16:14.3440437Z             {
2026-06-21T05:16:14.3440547Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.3440640Z               "line": 1348
2026-06-21T05:16:14.3440716Z             },
2026-06-21T05:16:14.3440802Z             {
2026-06-21T05:16:14.3440907Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.3440992Z               "line": 1365
2026-06-21T05:16:14.3441073Z             },
2026-06-21T05:16:14.3441155Z             {
2026-06-21T05:16:14.3441270Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.3441350Z               "line": 1379
2026-06-21T05:16:14.3441436Z             },
2026-06-21T05:16:14.3441518Z             {
2026-06-21T05:16:14.3441645Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.3441736Z               "line": 1495
2026-06-21T05:16:14.3441828Z             },
2026-06-21T05:16:14.3441904Z             {
2026-06-21T05:16:14.3442022Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.3442109Z               "line": 1510
2026-06-21T05:16:14.3442304Z             },
2026-06-21T05:16:14.3442400Z             {
2026-06-21T05:16:14.3442509Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.3442594Z               "line": 1621
2026-06-21T05:16:14.3442680Z             },
2026-06-21T05:16:14.3442763Z             {
2026-06-21T05:16:14.3442875Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.3442962Z               "line": 1632
2026-06-21T05:16:14.3443044Z             }
2026-06-21T05:16:14.3443125Z           ]
2026-06-21T05:16:14.3443204Z         }
2026-06-21T05:16:14.3443289Z       }
2026-06-21T05:16:14.3443375Z     },
2026-06-21T05:16:14.3443569Z     {
2026-06-21T05:16:14.3443664Z       "id": "REQ-MANIFEST-2",
2026-06-21T05:16:14.3444175Z       "title": "Adapter profiles — sparse leaf-replace overlays (shipped + local), composite <adapter>:<profile> addressing, shadow-refusal, tighten-only consent floors",
2026-06-21T05:16:14.3444260Z       "requiredStages": [
2026-06-21T05:16:14.3444366Z         "doc",
2026-06-21T05:16:14.3444451Z         "impl",
2026-06-21T05:16:14.3444536Z         "unit"
2026-06-21T05:16:14.3444623Z       ],
2026-06-21T05:16:14.3444709Z       "stages": {
2026-06-21T05:16:14.3444799Z         "doc": {
2026-06-21T05:16:14.3444880Z           "complete": true,
2026-06-21T05:16:14.3444966Z           "evidence": [
2026-06-21T05:16:14.3445047Z             {
2026-06-21T05:16:14.3445147Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.3445242Z               "line": 75
2026-06-21T05:16:14.3445315Z             }
2026-06-21T05:16:14.3445405Z           ]
2026-06-21T05:16:14.3445485Z         },
2026-06-21T05:16:14.3445572Z         "impl": {
2026-06-21T05:16:14.3445677Z           "complete": true,
2026-06-21T05:16:14.3445771Z           "evidence": [
2026-06-21T05:16:14.3445856Z             {
2026-06-21T05:16:14.3445985Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.3446074Z               "line": 82
2026-06-21T05:16:14.3446159Z             },
2026-06-21T05:16:14.3446255Z             {
2026-06-21T05:16:14.3446380Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T05:16:14.3446474Z               "line": 15
2026-06-21T05:16:14.3446559Z             },
2026-06-21T05:16:14.3446651Z             {
2026-06-21T05:16:14.3446770Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T05:16:14.3446855Z               "line": 65
2026-06-21T05:16:14.3446937Z             },
2026-06-21T05:16:14.3447018Z             {
2026-06-21T05:16:14.3447136Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T05:16:14.3447229Z               "line": 83
2026-06-21T05:16:14.3447309Z             },
2026-06-21T05:16:14.3447409Z             {
2026-06-21T05:16:14.3447523Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T05:16:14.3447624Z               "line": 183
2026-06-21T05:16:14.3447709Z             },
2026-06-21T05:16:14.3447795Z             {
2026-06-21T05:16:14.3447920Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.3448009Z               "line": 527
2026-06-21T05:16:14.3448095Z             },
2026-06-21T05:16:14.3448178Z             {
2026-06-21T05:16:14.3448305Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.3448386Z               "line": 553
2026-06-21T05:16:14.3448468Z             },
2026-06-21T05:16:14.3448554Z             {
2026-06-21T05:16:14.3448671Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.3448762Z               "line": 671
2026-06-21T05:16:14.3448843Z             },
2026-06-21T05:16:14.3448930Z             {
2026-06-21T05:16:14.3449129Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.3449234Z               "line": 696
2026-06-21T05:16:14.3449320Z             },
2026-06-21T05:16:14.3449400Z             {
2026-06-21T05:16:14.3449526Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.3449607Z               "line": 719
2026-06-21T05:16:14.3449807Z             },
2026-06-21T05:16:14.3449887Z             {
2026-06-21T05:16:14.3450015Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.3450112Z               "line": 734
2026-06-21T05:16:14.3450193Z             },
2026-06-21T05:16:14.3450274Z             {
2026-06-21T05:16:14.3450374Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3450470Z               "line": 5567
2026-06-21T05:16:14.3450559Z             },
2026-06-21T05:16:14.3450640Z             {
2026-06-21T05:16:14.3450742Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3450823Z               "line": 5581
2026-06-21T05:16:14.3450912Z             },
2026-06-21T05:16:14.3451088Z             {
2026-06-21T05:16:14.3451191Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3451281Z               "line": 5615
2026-06-21T05:16:14.3451357Z             }
2026-06-21T05:16:14.3451448Z           ]
2026-06-21T05:16:14.3451529Z         },
2026-06-21T05:16:14.3451624Z         "int": {
2026-06-21T05:16:14.3451720Z           "complete": false,
2026-06-21T05:16:14.3451801Z           "evidence": []
2026-06-21T05:16:14.3451895Z         },
2026-06-21T05:16:14.3451976Z         "unit": {
2026-06-21T05:16:14.3452078Z           "complete": true,
2026-06-21T05:16:14.3452168Z           "evidence": [
2026-06-21T05:16:14.3452253Z             {
2026-06-21T05:16:14.3452369Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T05:16:14.3452464Z               "line": 921
2026-06-21T05:16:14.3452558Z             },
2026-06-21T05:16:14.3452640Z             {
2026-06-21T05:16:14.3452768Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T05:16:14.3452854Z               "line": 211
2026-06-21T05:16:14.3452945Z             },
2026-06-21T05:16:14.3453027Z             {
2026-06-21T05:16:14.3453155Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T05:16:14.3453250Z               "line": 272
2026-06-21T05:16:14.3453333Z             },
2026-06-21T05:16:14.3453435Z             {
2026-06-21T05:16:14.3453551Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T05:16:14.3453633Z               "line": 313
2026-06-21T05:16:14.3453718Z             },
2026-06-21T05:16:14.3453812Z             {
2026-06-21T05:16:14.3453935Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T05:16:14.3454026Z               "line": 325
2026-06-21T05:16:14.3454105Z             },
2026-06-21T05:16:14.3454190Z             {
2026-06-21T05:16:14.3454315Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T05:16:14.3454392Z               "line": 336
2026-06-21T05:16:14.3454477Z             },
2026-06-21T05:16:14.3454563Z             {
2026-06-21T05:16:14.3454673Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T05:16:14.3454763Z               "line": 345
2026-06-21T05:16:14.3454848Z             },
2026-06-21T05:16:14.3454936Z             {
2026-06-21T05:16:14.3455054Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T05:16:14.3455144Z               "line": 361
2026-06-21T05:16:14.3455226Z             },
2026-06-21T05:16:14.3455307Z             {
2026-06-21T05:16:14.3455421Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T05:16:14.3455502Z               "line": 444
2026-06-21T05:16:14.3455603Z             },
2026-06-21T05:16:14.3455688Z             {
2026-06-21T05:16:14.3455807Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.3455904Z               "line": 958
2026-06-21T05:16:14.3455988Z             },
2026-06-21T05:16:14.3456075Z             {
2026-06-21T05:16:14.3456195Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.3456294Z               "line": 982
2026-06-21T05:16:14.3456383Z             },
2026-06-21T05:16:14.3456464Z             {
2026-06-21T05:16:14.3456583Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.3456677Z               "line": 1008
2026-06-21T05:16:14.3456858Z             },
2026-06-21T05:16:14.3456945Z             {
2026-06-21T05:16:14.3457067Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.3457164Z               "line": 1027
2026-06-21T05:16:14.3457249Z             },
2026-06-21T05:16:14.3457339Z             {
2026-06-21T05:16:14.3457449Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.3457545Z               "line": 1058
2026-06-21T05:16:14.3457626Z             },
2026-06-21T05:16:14.3457710Z             {
2026-06-21T05:16:14.3457817Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T05:16:14.3457902Z               "line": 309
2026-06-21T05:16:14.3458055Z             },
2026-06-21T05:16:14.3458146Z             {
2026-06-21T05:16:14.3458265Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T05:16:14.3458350Z               "line": 606
2026-06-21T05:16:14.3458433Z             },
2026-06-21T05:16:14.3458513Z             {
2026-06-21T05:16:14.3458618Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3458713Z               "line": 8610
2026-06-21T05:16:14.3458800Z             },
2026-06-21T05:16:14.3458889Z             {
2026-06-21T05:16:14.3459077Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3459175Z               "line": 9558
2026-06-21T05:16:14.3459269Z             }
2026-06-21T05:16:14.3459350Z           ]
2026-06-21T05:16:14.3459432Z         }
2026-06-21T05:16:14.3459518Z       }
2026-06-21T05:16:14.3459603Z     },
2026-06-21T05:16:14.3459684Z     {
2026-06-21T05:16:14.3459790Z       "id": "REQ-MANIFEST-3",
2026-06-21T05:16:14.3460429Z       "title": "Adapter strings — [strings] KV tree, dot-path get-string resolving through the profile leaf-replace overlay, set-string editing a local profile's [strings] only; data-only (nothing executes a string)",
2026-06-21T05:16:14.3460533Z       "requiredStages": [
2026-06-21T05:16:14.3460624Z         "doc",
2026-06-21T05:16:14.3460701Z         "impl",
2026-06-21T05:16:14.3460786Z         "unit"
2026-06-21T05:16:14.3460876Z       ],
2026-06-21T05:16:14.3460968Z       "stages": {
2026-06-21T05:16:14.3461058Z         "doc": {
2026-06-21T05:16:14.3461152Z           "complete": true,
2026-06-21T05:16:14.3461244Z           "evidence": [
2026-06-21T05:16:14.3461326Z             {
2026-06-21T05:16:14.3461429Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.3461514Z               "line": 81
2026-06-21T05:16:14.3461600Z             }
2026-06-21T05:16:14.3461686Z           ]
2026-06-21T05:16:14.3461770Z         },
2026-06-21T05:16:14.3461855Z         "impl": {
2026-06-21T05:16:14.3461941Z           "complete": true,
2026-06-21T05:16:14.3462037Z           "evidence": [
2026-06-21T05:16:14.3462136Z             {
2026-06-21T05:16:14.3462256Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.3462342Z               "line": 92
2026-06-21T05:16:14.3462432Z             },
2026-06-21T05:16:14.3462518Z             {
2026-06-21T05:16:14.3462638Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T05:16:14.3462738Z               "line": 101
2026-06-21T05:16:14.3462823Z             },
2026-06-21T05:16:14.3462915Z             {
2026-06-21T05:16:14.3463038Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T05:16:14.3463128Z               "line": 132
2026-06-21T05:16:14.3463220Z             },
2026-06-21T05:16:14.3463301Z             {
2026-06-21T05:16:14.3463428Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.3463515Z               "line": 577
2026-06-21T05:16:14.3463597Z             },
2026-06-21T05:16:14.3463676Z             {
2026-06-21T05:16:14.3463791Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.3463893Z               "line": 633
2026-06-21T05:16:14.3463977Z             },
2026-06-21T05:16:14.3464068Z             {
2026-06-21T05:16:14.3464174Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3464260Z               "line": 5628
2026-06-21T05:16:14.3464348Z             },
2026-06-21T05:16:14.3464534Z             {
2026-06-21T05:16:14.3464642Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3464727Z               "line": 5654
2026-06-21T05:16:14.3464808Z             }
2026-06-21T05:16:14.3464895Z           ]
2026-06-21T05:16:14.3464975Z         },
2026-06-21T05:16:14.3465070Z         "int": {
2026-06-21T05:16:14.3465167Z           "complete": false,
2026-06-21T05:16:14.3465262Z           "evidence": []
2026-06-21T05:16:14.3465342Z         },
2026-06-21T05:16:14.3465428Z         "unit": {
2026-06-21T05:16:14.3465524Z           "complete": true,
2026-06-21T05:16:14.3465610Z           "evidence": [
2026-06-21T05:16:14.3465786Z             {
2026-06-21T05:16:14.3465905Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T05:16:14.3465991Z               "line": 371
2026-06-21T05:16:14.3466077Z             },
2026-06-21T05:16:14.3466159Z             {
2026-06-21T05:16:14.3466286Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T05:16:14.3466377Z               "line": 429
2026-06-21T05:16:14.3466459Z             },
2026-06-21T05:16:14.3466539Z             {
2026-06-21T05:16:14.3466663Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.3466755Z               "line": 1082
2026-06-21T05:16:14.3466849Z             },
2026-06-21T05:16:14.3466944Z             {
2026-06-21T05:16:14.3467043Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3467138Z               "line": 8703
2026-06-21T05:16:14.3467222Z             }
2026-06-21T05:16:14.3467312Z           ]
2026-06-21T05:16:14.3467394Z         }
2026-06-21T05:16:14.3467476Z       }
2026-06-21T05:16:14.3467575Z     },
2026-06-21T05:16:14.3467661Z     {
2026-06-21T05:16:14.3467767Z       "id": "REQ-MANIFEST-4",
2026-06-21T05:16:14.3468453Z       "title": "Keyword hints — [[hints]] {keywords (literal/regex), text}; spt api hint --session emits at most one matched hint per message, once per session (seen-set), declaration-order first match; profiles overlay [[hints]] by leaf-replace",
2026-06-21T05:16:14.3468562Z       "requiredStages": [
2026-06-21T05:16:14.3468648Z         "doc",
2026-06-21T05:16:14.3468734Z         "impl",
2026-06-21T05:16:14.3468825Z         "unit"
2026-06-21T05:16:14.3468910Z       ],
2026-06-21T05:16:14.3469068Z       "stages": {
2026-06-21T05:16:14.3469158Z         "doc": {
2026-06-21T05:16:14.3469249Z           "complete": true,
2026-06-21T05:16:14.3469341Z           "evidence": [
2026-06-21T05:16:14.3469430Z             {
2026-06-21T05:16:14.3469521Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.3469612Z               "line": 88
2026-06-21T05:16:14.3469698Z             }
2026-06-21T05:16:14.3469792Z           ]
2026-06-21T05:16:14.3469877Z         },
2026-06-21T05:16:14.3469959Z         "impl": {
2026-06-21T05:16:14.3470060Z           "complete": true,
2026-06-21T05:16:14.3470153Z           "evidence": [
2026-06-21T05:16:14.3470239Z             {
2026-06-21T05:16:14.3470360Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.3470445Z               "line": 100
2026-06-21T05:16:14.3470535Z             },
2026-06-21T05:16:14.3470612Z             {
2026-06-21T05:16:14.3470727Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.3470816Z               "line": 183
2026-06-21T05:16:14.3470898Z             },
2026-06-21T05:16:14.3470994Z             {
2026-06-21T05:16:14.3471112Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3471203Z               "line": 83
2026-06-21T05:16:14.3471285Z             },
2026-06-21T05:16:14.3471365Z             {
2026-06-21T05:16:14.3471494Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.3471618Z               "line": 629
2026-06-21T05:16:14.3471707Z             },
2026-06-21T05:16:14.3471784Z             {
2026-06-21T05:16:14.3471910Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.3472009Z               "line": 654
2026-06-21T05:16:14.3472194Z             }
2026-06-21T05:16:14.3472284Z           ]
2026-06-21T05:16:14.3472363Z         },
2026-06-21T05:16:14.3472453Z         "int": {
2026-06-21T05:16:14.3472549Z           "complete": false,
2026-06-21T05:16:14.3472645Z           "evidence": []
2026-06-21T05:16:14.3472725Z         },
2026-06-21T05:16:14.3472811Z         "unit": {
2026-06-21T05:16:14.3472902Z           "complete": true,
2026-06-21T05:16:14.3472993Z           "evidence": [
2026-06-21T05:16:14.3473073Z             {
2026-06-21T05:16:14.3473189Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.3473279Z               "line": 1445
2026-06-21T05:16:14.3473364Z             },
2026-06-21T05:16:14.3473551Z             {
2026-06-21T05:16:14.3473674Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.3473755Z               "line": 1478
2026-06-21T05:16:14.3473832Z             },
2026-06-21T05:16:14.3473917Z             {
2026-06-21T05:16:14.3474036Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.3474133Z               "line": 988
2026-06-21T05:16:14.3474222Z             }
2026-06-21T05:16:14.3474304Z           ]
2026-06-21T05:16:14.3474390Z         }
2026-06-21T05:16:14.3474476Z       }
2026-06-21T05:16:14.3474561Z     },
2026-06-21T05:16:14.3474642Z     {
2026-06-21T05:16:14.3474744Z       "id": "REQ-MANIFEST-5",
2026-06-21T05:16:14.3477555Z       "title": "File-backed adapter [strings] (M12-W3-T3.1): a [strings] dot-path value MAY be an inline-table FILE POINTER `key = { file = \"rel/path\" }` resolved to the file's contents at get-string time, keeping large bodies (skill-instructions, hint text) out of the manifest. A value-position table with a `file` key IS the pointer form (reserved — cannot double as data). Per-adapter aux storage `adapters/<adapter>/strings/`; pointers resolve relative to it with CONTAINMENT (reject `..`/absolute escaping the dir). UPDATE-SAFETY: a LOCAL profile's file-pointers resolve relative to the user-owned local-profile dir (NOT adapter-shipped strings/, which adapter updates overwrite), or the local profile inlines. Validate-at-register (fail-fast on a bad/escaping/missing pointer) + LAZY read at get-string (live file edits reflect, no re-register) + skip-diagnostics on missing-at-read (no hard-crash, mirrors [digest]). Rides the same leaf-replace profile overlay as the rest of [strings].",
2026-06-21T05:16:14.3477671Z       "requiredStages": [
2026-06-21T05:16:14.3477764Z         "doc",
2026-06-21T05:16:14.3477840Z         "impl",
2026-06-21T05:16:14.3477930Z         "unit"
2026-06-21T05:16:14.3478007Z       ],
2026-06-21T05:16:14.3478093Z       "stages": {
2026-06-21T05:16:14.3478183Z         "doc": {
2026-06-21T05:16:14.3478294Z           "complete": true,
2026-06-21T05:16:14.3478389Z           "evidence": [
2026-06-21T05:16:14.3478474Z             {
2026-06-21T05:16:14.3478574Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.3478655Z               "line": 83
2026-06-21T05:16:14.3478746Z             }
2026-06-21T05:16:14.3478840Z           ]
2026-06-21T05:16:14.3478928Z         },
2026-06-21T05:16:14.3479075Z         "impl": {
2026-06-21T05:16:14.3479170Z           "complete": true,
2026-06-21T05:16:14.3479262Z           "evidence": [
2026-06-21T05:16:14.3479346Z             {
2026-06-21T05:16:14.3479494Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T05:16:14.3479577Z               "line": 120
2026-06-21T05:16:14.3479661Z             }
2026-06-21T05:16:14.3479747Z           ]
2026-06-21T05:16:14.3479829Z         },
2026-06-21T05:16:14.3479915Z         "int": {
2026-06-21T05:16:14.3480004Z           "complete": false,
2026-06-21T05:16:14.3480100Z           "evidence": []
2026-06-21T05:16:14.3480206Z         },
2026-06-21T05:16:14.3480295Z         "unit": {
2026-06-21T05:16:14.3480399Z           "complete": true,
2026-06-21T05:16:14.3480489Z           "evidence": [
2026-06-21T05:16:14.3480567Z             {
2026-06-21T05:16:14.3480690Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-21T05:16:14.3480901Z               "line": 404
2026-06-21T05:16:14.3480986Z             },
2026-06-21T05:16:14.3481076Z             {
2026-06-21T05:16:14.3481191Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.3481272Z               "line": 1155
2026-06-21T05:16:14.3481362Z             },
2026-06-21T05:16:14.3481443Z             {
2026-06-21T05:16:14.3481568Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.3481663Z               "line": 1184
2026-06-21T05:16:14.3481749Z             },
2026-06-21T05:16:14.3481831Z             {
2026-06-21T05:16:14.3484864Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.3485174Z               "line": 1224
2026-06-21T05:16:14.3485265Z             },
2026-06-21T05:16:14.3485361Z             {
2026-06-21T05:16:14.3485511Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.3485602Z               "line": 1239
2026-06-21T05:16:14.3485688Z             }
2026-06-21T05:16:14.3485776Z           ]
2026-06-21T05:16:14.3485861Z         }
2026-06-21T05:16:14.3485948Z       }
2026-06-21T05:16:14.3486039Z     },
2026-06-21T05:16:14.3486128Z     {
2026-06-21T05:16:14.3486233Z       "id": "REQ-MANIFEST-6",
2026-06-21T05:16:14.3488357Z       "title": "Cross-adapter fallback target addressing (M12-W3-T3.2): a cross-adapter fallback target is addressed as `<adapter>:<profile>` (not just a bare adapter_name), resolved through the one composite-addressing resolver (registry::resolve_option) at every adapter-option read site so a fallback may select a shipped/local profile (e.g. a `ccs` profile). CONTEXT.md §cross-adapter-fallback reconciled (\"ccs is a profile; cross-adapter fallback may target <adapter>:<profile>\"). Contract-only this milestone: the node-wide fallback SETTING + its rate-limit invocation are deferred to the consuming milestone (the runtime path does not exist yet); this REQ guarantees the ADDRESSING resolves.",
2026-06-21T05:16:14.3488486Z       "requiredStages": [
2026-06-21T05:16:14.3488572Z         "doc",
2026-06-21T05:16:14.3488662Z         "unit"
2026-06-21T05:16:14.3488748Z       ],
2026-06-21T05:16:14.3488839Z       "stages": {
2026-06-21T05:16:14.3488925Z         "doc": {
2026-06-21T05:16:14.3489125Z           "complete": true,
2026-06-21T05:16:14.3489230Z           "evidence": [
2026-06-21T05:16:14.3489315Z             {
2026-06-21T05:16:14.3489410Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.3489493Z               "line": 141
2026-06-21T05:16:14.3489582Z             }
2026-06-21T05:16:14.3489668Z           ]
2026-06-21T05:16:14.3489749Z         },
2026-06-21T05:16:14.3489836Z         "impl": {
2026-06-21T05:16:14.3489940Z           "complete": false,
2026-06-21T05:16:14.3490035Z           "evidence": []
2026-06-21T05:16:14.3490122Z         },
2026-06-21T05:16:14.3490207Z         "int": {
2026-06-21T05:16:14.3490312Z           "complete": false,
2026-06-21T05:16:14.3490394Z           "evidence": []
2026-06-21T05:16:14.3490480Z         },
2026-06-21T05:16:14.3490569Z         "unit": {
2026-06-21T05:16:14.3490665Z           "complete": true,
2026-06-21T05:16:14.3490747Z           "evidence": [
2026-06-21T05:16:14.3490832Z             {
2026-06-21T05:16:14.3490959Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.3491050Z               "line": 1261
2026-06-21T05:16:14.3491137Z             }
2026-06-21T05:16:14.3491217Z           ]
2026-06-21T05:16:14.3491307Z         }
2026-06-21T05:16:14.3491384Z       }
2026-06-21T05:16:14.3491470Z     },
2026-06-21T05:16:14.3491560Z     {
2026-06-21T05:16:14.3491660Z       "id": "REQ-MANIFEST-7",
2026-06-21T05:16:14.3494605Z       "title": "Adapter-declared shortcut basename (M12-W2 follow-on): an optional `[adapter] shortcut_basename` manifest field names the basename the `spt endpoint run` picker bakes into the generated `<basename>-<id>` launcher shortcut (REQ-RUN-SHORTCUT). Absent ⇒ the harness-agnostic default `spt` (→ `spt-<id>`); an adapter sets it to brand its shortcuts (claude-spt → `cc` → `cc-<id>`), so the Claude-Code-ness lives in the PUBLISHED adapter manifest, never hardcoded in spt-core. The picker reads it from the RESOLVED manifest of the selected adapter (registry::resolve_option), falling back to `spt` when absent/empty/unresolvable. Additive + N-1-safe (serde-default Option, omitted from serialization when absent; old manifests parse clean); manifest.schema.json regenerated from the derive (ADR-0001, CI drift-gated). Documented in docs/MANIFEST.md `[adapter]` section + the claude-spt worked example — the adapter-author contract perri builds spt-claude-code against.",
2026-06-21T05:16:14.3494842Z       "requiredStages": [
2026-06-21T05:16:14.3495038Z         "doc",
2026-06-21T05:16:14.3495128Z         "impl",
2026-06-21T05:16:14.3495210Z         "unit"
2026-06-21T05:16:14.3495296Z       ],
2026-06-21T05:16:14.3495385Z       "stages": {
2026-06-21T05:16:14.3495471Z         "doc": {
2026-06-21T05:16:14.3495573Z           "complete": true,
2026-06-21T05:16:14.3495672Z           "evidence": [
2026-06-21T05:16:14.3495781Z             {
2026-06-21T05:16:14.3495892Z               "path": "docs/MANIFEST.md",
2026-06-21T05:16:14.3495977Z               "line": 35
2026-06-21T05:16:14.3496071Z             }
2026-06-21T05:16:14.3496157Z           ]
2026-06-21T05:16:14.3496243Z         },
2026-06-21T05:16:14.3496336Z         "impl": {
2026-06-21T05:16:14.3496426Z           "complete": true,
2026-06-21T05:16:14.3496536Z           "evidence": [
2026-06-21T05:16:14.3496613Z             {
2026-06-21T05:16:14.3496741Z               "path": "crates/spt/src/picker/data.rs",
2026-06-21T05:16:14.3496828Z               "line": 54
2026-06-21T05:16:14.3496918Z             }
2026-06-21T05:16:14.3497018Z           ]
2026-06-21T05:16:14.3497103Z         },
2026-06-21T05:16:14.3497186Z         "int": {
2026-06-21T05:16:14.3497281Z           "complete": false,
2026-06-21T05:16:14.3497365Z           "evidence": []
2026-06-21T05:16:14.3497452Z         },
2026-06-21T05:16:14.3497543Z         "unit": {
2026-06-21T05:16:14.3497648Z           "complete": true,
2026-06-21T05:16:14.3497733Z           "evidence": [
2026-06-21T05:16:14.3497820Z             {
2026-06-21T05:16:14.3497947Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.3498038Z               "line": 1638
2026-06-21T05:16:14.3498111Z             }
2026-06-21T05:16:14.3498206Z           ]
2026-06-21T05:16:14.3498291Z         }
2026-06-21T05:16:14.3498368Z       }
2026-06-21T05:16:14.3498454Z     },
2026-06-21T05:16:14.3498539Z     {
2026-06-21T05:16:14.3498643Z       "id": "REQ-MANIFEST-8",
2026-06-21T05:16:14.3500876Z       "title": "[adapter] host_binaries declares the harness executable basenames a kind=\"harness\" adapter hosts agents inside (e.g. host_binaries = [\"claude\"]); bind-time pid→exe-basename match (case-insensitive, .exe-stripped) over the seed's parent_pid selects the candidate adapter set; zero matches → a friendly error naming the binary + the --adapter escape hatch. Additive + N-1-safe: optional Vec<String>, #[serde(default, skip_serializing_if = \"Vec::is_empty\")] (omitted-serialized like shortcut_basename, old manifests parse clean); manifest.schema.json regenerated from the derive (ADR-0001, CI drift-gated). The match-key for ADR-0021 adapter-agnostic bind-time resolution. (v0.9.0)",
2026-06-21T05:16:14.3500997Z       "requiredStages": [
2026-06-21T05:16:14.3501082Z         "doc",
2026-06-21T05:16:14.3501168Z         "impl",
2026-06-21T05:16:14.3501244Z         "unit",
2026-06-21T05:16:14.3501336Z         "int"
2026-06-21T05:16:14.3501416Z       ],
2026-06-21T05:16:14.3501501Z       "stages": {
2026-06-21T05:16:14.3501581Z         "doc": {
2026-06-21T05:16:14.3501697Z           "complete": true,
2026-06-21T05:16:14.3501796Z           "evidence": [
2026-06-21T05:16:14.3501881Z             {
2026-06-21T05:16:14.3501978Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.3502069Z               "line": 184
2026-06-21T05:16:14.3502158Z             },
2026-06-21T05:16:14.3502240Z             {
2026-06-21T05:16:14.3502444Z               "path": "docs/MANIFEST.md",
2026-06-21T05:16:14.3502530Z               "line": 46
2026-06-21T05:16:14.3502608Z             }
2026-06-21T05:16:14.3502688Z           ]
2026-06-21T05:16:14.3502769Z         },
2026-06-21T05:16:14.3502854Z         "impl": {
2026-06-21T05:16:14.3502942Z           "complete": true,
2026-06-21T05:16:14.3503026Z           "evidence": [
2026-06-21T05:16:14.3503112Z             {
2026-06-21T05:16:14.3503223Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T05:16:14.3503313Z               "line": 222
2026-06-21T05:16:14.3503398Z             },
2026-06-21T05:16:14.3503479Z             {
2026-06-21T05:16:14.3503693Z               "path": "crates/spt-store/src/proc.rs",
2026-06-21T05:16:14.3503788Z               "line": 306
2026-06-21T05:16:14.3503864Z             }
2026-06-21T05:16:14.3503940Z           ]
2026-06-21T05:16:14.3504029Z         },
2026-06-21T05:16:14.3504109Z         "int": {
2026-06-21T05:16:14.3504211Z           "complete": true,
2026-06-21T05:16:14.3504292Z           "evidence": [
2026-06-21T05:16:14.3504377Z             {
2026-06-21T05:16:14.3504506Z               "path": "crates/spt/tests/live_resolve_e2e.rs",
2026-06-21T05:16:14.3504588Z               "line": 18
2026-06-21T05:16:14.3504668Z             }
2026-06-21T05:16:14.3504753Z           ]
2026-06-21T05:16:14.3504841Z         },
2026-06-21T05:16:14.3504921Z         "unit": {
2026-06-21T05:16:14.3505011Z           "complete": true,
2026-06-21T05:16:14.3505097Z           "evidence": [
2026-06-21T05:16:14.3505174Z             {
2026-06-21T05:16:14.3505298Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.3505387Z               "line": 1656
2026-06-21T05:16:14.3505470Z             },
2026-06-21T05:16:14.3505555Z             {
2026-06-21T05:16:14.3505674Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T05:16:14.3505760Z               "line": 316
2026-06-21T05:16:14.3505847Z             },
2026-06-21T05:16:14.3505931Z             {
2026-06-21T05:16:14.3506051Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T05:16:14.3506142Z               "line": 332
2026-06-21T05:16:14.3506227Z             },
2026-06-21T05:16:14.3506313Z             {
2026-06-21T05:16:14.3506429Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T05:16:14.3506519Z               "line": 345
2026-06-21T05:16:14.3506599Z             },
2026-06-21T05:16:14.3506674Z             {
2026-06-21T05:16:14.3506789Z               "path": "crates/spt-store/src/proc.rs",
2026-06-21T05:16:14.3506882Z               "line": 422
2026-06-21T05:16:14.3506967Z             },
2026-06-21T05:16:14.3507063Z             {
2026-06-21T05:16:14.3507173Z               "path": "crates/spt-store/src/proc.rs",
2026-06-21T05:16:14.3507268Z               "line": 436
2026-06-21T05:16:14.3507340Z             }
2026-06-21T05:16:14.3507426Z           ]
2026-06-21T05:16:14.3507522Z         }
2026-06-21T05:16:14.3507606Z       }
2026-06-21T05:16:14.3507693Z     },
2026-06-21T05:16:14.3507784Z     {
2026-06-21T05:16:14.3507874Z       "id": "REQ-MESH-1",
2026-06-21T05:16:14.3510003Z       "title": "Membership proof (seed-proof): symmetric current-epoch seed-knowledge replaces is_trusted at EVERY inbound gate (registry apply, WAN receive, sync, notif, connection accept). MK = HKDF(seed, domain ‖ subnet_id ‖ seed_epoch); mutual channel-bound challenge-response at connect (transcript binds both handshake-proven node pubkeys, both nonces, subnet_id, seed_epoch, role); verified once per connection, cached on the broker ConnEntry, kept warm via QUIC keep-alive so re-proof is restart/partition/rotation-only. Exact-epoch match (re-seed is the sole N-1 exception). SECURITY INVARIANTS: channel-bound (no cross-connection replay), mutual, accepts a member it never paired (the mesh property).",
2026-06-21T05:16:14.3510112Z       "requiredStages": [
2026-06-21T05:16:14.3510192Z         "impl",
2026-06-21T05:16:14.3510279Z         "unit",
2026-06-21T05:16:14.3510364Z         "int"
2026-06-21T05:16:14.3510575Z       ],
2026-06-21T05:16:14.3510660Z       "stages": {
2026-06-21T05:16:14.3510751Z         "doc": {
2026-06-21T05:16:14.3510826Z           "complete": false,
2026-06-21T05:16:14.3510918Z           "evidence": []
2026-06-21T05:16:14.3511003Z         },
2026-06-21T05:16:14.3511084Z         "impl": {
2026-06-21T05:16:14.3511175Z           "complete": true,
2026-06-21T05:16:14.3511257Z           "evidence": [
2026-06-21T05:16:14.3511342Z             {
2026-06-21T05:16:14.3511461Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T05:16:14.3511557Z               "line": 922
2026-06-21T05:16:14.3511633Z             },
2026-06-21T05:16:14.3511819Z             {
2026-06-21T05:16:14.3511944Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T05:16:14.3512022Z               "line": 38
2026-06-21T05:16:14.3512108Z             },
2026-06-21T05:16:14.3512189Z             {
2026-06-21T05:16:14.3512310Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T05:16:14.3512404Z               "line": 161
2026-06-21T05:16:14.3512490Z             },
2026-06-21T05:16:14.3512576Z             {
2026-06-21T05:16:14.3512694Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T05:16:14.3512790Z               "line": 206
2026-06-21T05:16:14.3512872Z             },
2026-06-21T05:16:14.3512958Z             {
2026-06-21T05:16:14.3513066Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T05:16:14.3513158Z               "line": 57
2026-06-21T05:16:14.3513243Z             },
2026-06-21T05:16:14.3513329Z             {
2026-06-21T05:16:14.3513463Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-21T05:16:14.3513553Z               "line": 24
2026-06-21T05:16:14.3513634Z             },
2026-06-21T05:16:14.3513715Z             {
2026-06-21T05:16:14.3513840Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-21T05:16:14.3513929Z               "line": 142
2026-06-21T05:16:14.3514015Z             },
2026-06-21T05:16:14.3514102Z             {
2026-06-21T05:16:14.3514225Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-21T05:16:14.3514310Z               "line": 162
2026-06-21T05:16:14.3514396Z             }
2026-06-21T05:16:14.3514486Z           ]
2026-06-21T05:16:14.3514570Z         },
2026-06-21T05:16:14.3514651Z         "int": {
2026-06-21T05:16:14.3514737Z           "complete": true,
2026-06-21T05:16:14.3514828Z           "evidence": [
2026-06-21T05:16:14.3514918Z             {
2026-06-21T05:16:14.3515047Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-21T05:16:14.3515138Z               "line": 67
2026-06-21T05:16:14.3515228Z             },
2026-06-21T05:16:14.3515309Z             {
2026-06-21T05:16:14.3515438Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-21T05:16:14.3515524Z               "line": 93
2026-06-21T05:16:14.3515609Z             },
2026-06-21T05:16:14.3515701Z             {
2026-06-21T05:16:14.3515829Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-21T05:16:14.3515914Z               "line": 117
2026-06-21T05:16:14.3516001Z             },
2026-06-21T05:16:14.3516087Z             {
2026-06-21T05:16:14.3516210Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-21T05:16:14.3516301Z               "line": 134
2026-06-21T05:16:14.3516388Z             }
2026-06-21T05:16:14.3516473Z           ]
2026-06-21T05:16:14.3516563Z         },
2026-06-21T05:16:14.3516645Z         "unit": {
2026-06-21T05:16:14.3516745Z           "complete": true,
2026-06-21T05:16:14.3516835Z           "evidence": [
2026-06-21T05:16:14.3516926Z             {
2026-06-21T05:16:14.3517055Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T05:16:14.3517145Z               "line": 427
2026-06-21T05:16:14.3517234Z             },
2026-06-21T05:16:14.3517316Z             {
2026-06-21T05:16:14.3517452Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-21T05:16:14.3517604Z               "line": 376
2026-06-21T05:16:14.3517681Z             },
2026-06-21T05:16:14.3517767Z             {
2026-06-21T05:16:14.3517890Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-21T05:16:14.3517977Z               "line": 412
2026-06-21T05:16:14.3518058Z             },
2026-06-21T05:16:14.3518148Z             {
2026-06-21T05:16:14.3518263Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-21T05:16:14.3518358Z               "line": 427
2026-06-21T05:16:14.3518434Z             },
2026-06-21T05:16:14.3518514Z             {
2026-06-21T05:16:14.3518644Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-21T05:16:14.3518819Z               "line": 438
2026-06-21T05:16:14.3518912Z             },
2026-06-21T05:16:14.3519072Z             {
2026-06-21T05:16:14.3519197Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-21T05:16:14.3519288Z               "line": 449
2026-06-21T05:16:14.3519373Z             },
2026-06-21T05:16:14.3519493Z             {
2026-06-21T05:16:14.3519617Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-21T05:16:14.3519702Z               "line": 460
2026-06-21T05:16:14.3519787Z             },
2026-06-21T05:16:14.3519868Z             {
2026-06-21T05:16:14.3520000Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-21T05:16:14.3520089Z               "line": 496
2026-06-21T05:16:14.3520176Z             },
2026-06-21T05:16:14.3520258Z             {
2026-06-21T05:16:14.3520385Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-21T05:16:14.3520476Z               "line": 519
2026-06-21T05:16:14.3520572Z             },
2026-06-21T05:16:14.3520658Z             {
2026-06-21T05:16:14.3520781Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-21T05:16:14.3520877Z               "line": 546
2026-06-21T05:16:14.3520963Z             }
2026-06-21T05:16:14.3521043Z           ]
2026-06-21T05:16:14.3521130Z         }
2026-06-21T05:16:14.3521216Z       }
2026-06-21T05:16:14.3521301Z     },
2026-06-21T05:16:14.3521386Z     {
2026-06-21T05:16:14.3521478Z       "id": "REQ-MESH-2",
2026-06-21T05:16:14.3523994Z       "title": "Member roster: node-level union-merge grow-set (per member: pubkey, label, machine_id, last-known address, last-seen — NOT the seed), the discovery directory the mesh dials by. Seeded IN FULL at pairing (seed-holder hands joiner the whole current roster, incl. offline members — folds in deferred pairing-time hostname capture + post-join address seeding); each node authors its own entry stamped with its lease_epoch, merged strictly-greater-wins (the node_label lease); exchanged only over seed-proof'd member connections; forgery-inert (a fake entry names a pubkey that still can't seed-proof). Removal needs a TOMBSTONE — a per-pubkey revoked marker that propagates, dominates the entry, gates admission (seed-proof ∧ ¬tombstoned), and prevents reinsert; cleared by a completed re-pair of that pubkey. Persists through silence (offline member keeps its entry).",
2026-06-21T05:16:14.3524104Z       "requiredStages": [
2026-06-21T05:16:14.3524199Z         "impl",
2026-06-21T05:16:14.3524285Z         "unit",
2026-06-21T05:16:14.3524372Z         "int"
2026-06-21T05:16:14.3524456Z       ],
2026-06-21T05:16:14.3524537Z       "stages": {
2026-06-21T05:16:14.3524623Z         "doc": {
2026-06-21T05:16:14.3524716Z           "complete": false,
2026-06-21T05:16:14.3524813Z           "evidence": []
2026-06-21T05:16:14.3524889Z         },
2026-06-21T05:16:14.3524970Z         "impl": {
2026-06-21T05:16:14.3525056Z           "complete": true,
2026-06-21T05:16:14.3525135Z           "evidence": [
2026-06-21T05:16:14.3525234Z             {
2026-06-21T05:16:14.3525350Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T05:16:14.3525445Z               "line": 757
2026-06-21T05:16:14.3525526Z             },
2026-06-21T05:16:14.3525602Z             {
2026-06-21T05:16:14.3525731Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T05:16:14.3525941Z               "line": 118
2026-06-21T05:16:14.3526027Z             },
2026-06-21T05:16:14.3526112Z             {
2026-06-21T05:16:14.3526242Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T05:16:14.3526328Z               "line": 347
2026-06-21T05:16:14.3526413Z             },
2026-06-21T05:16:14.3526498Z             {
2026-06-21T05:16:14.3526624Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T05:16:14.3526723Z               "line": 389
2026-06-21T05:16:14.3526804Z             },
2026-06-21T05:16:14.3526895Z             {
2026-06-21T05:16:14.3527013Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T05:16:14.3527201Z               "line": 403
2026-06-21T05:16:14.3527291Z             },
2026-06-21T05:16:14.3527376Z             {
2026-06-21T05:16:14.3527486Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T05:16:14.3527573Z               "line": 492
2026-06-21T05:16:14.3527662Z             },
2026-06-21T05:16:14.3527756Z             {
2026-06-21T05:16:14.3527871Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T05:16:14.3527965Z               "line": 507
2026-06-21T05:16:14.3528045Z             },
2026-06-21T05:16:14.3528145Z             {
2026-06-21T05:16:14.3528251Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T05:16:14.3528350Z               "line": 534
2026-06-21T05:16:14.3528440Z             },
2026-06-21T05:16:14.3528523Z             {
2026-06-21T05:16:14.3528656Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T05:16:14.3528750Z               "line": 207
2026-06-21T05:16:14.3528843Z             },
2026-06-21T05:16:14.3528928Z             {
2026-06-21T05:16:14.3529132Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T05:16:14.3529219Z               "line": 755
2026-06-21T05:16:14.3529299Z             },
2026-06-21T05:16:14.3529385Z             {
2026-06-21T05:16:14.3529505Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T05:16:14.3529609Z               "line": 816
2026-06-21T05:16:14.3529695Z             },
2026-06-21T05:16:14.3529777Z             {
2026-06-21T05:16:14.3529900Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T05:16:14.3529986Z               "line": 869
2026-06-21T05:16:14.3530072Z             },
2026-06-21T05:16:14.3530149Z             {
2026-06-21T05:16:14.3530276Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T05:16:14.3530361Z               "line": 891
2026-06-21T05:16:14.3530448Z             },
2026-06-21T05:16:14.3530532Z             {
2026-06-21T05:16:14.3530654Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3530745Z               "line": 122
2026-06-21T05:16:14.3530832Z             },
2026-06-21T05:16:14.3530917Z             {
2026-06-21T05:16:14.3531036Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T05:16:14.3531108Z               "line": 44
2026-06-21T05:16:14.3531209Z             },
2026-06-21T05:16:14.3531288Z             {
2026-06-21T05:16:14.3531409Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T05:16:14.3531490Z               "line": 184
2026-06-21T05:16:14.3531570Z             },
2026-06-21T05:16:14.3531656Z             {
2026-06-21T05:16:14.3531766Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T05:16:14.3531861Z               "line": 211
2026-06-21T05:16:14.3531942Z             },
2026-06-21T05:16:14.3532029Z             {
2026-06-21T05:16:14.3532143Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T05:16:14.3532228Z               "line": 251
2026-06-21T05:16:14.3532324Z             },
2026-06-21T05:16:14.3532401Z             {
2026-06-21T05:16:14.3532514Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T05:16:14.3532595Z               "line": 275
2026-06-21T05:16:14.3532687Z             },
2026-06-21T05:16:14.3532772Z             {
2026-06-21T05:16:14.3533002Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T05:16:14.3533096Z               "line": 289
2026-06-21T05:16:14.3533176Z             },
2026-06-21T05:16:14.3533266Z             {
2026-06-21T05:16:14.3533382Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T05:16:14.3533467Z               "line": 300
2026-06-21T05:16:14.3533552Z             },
2026-06-21T05:16:14.3533639Z             {
2026-06-21T05:16:14.3533739Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T05:16:14.3533819Z               "line": 313
2026-06-21T05:16:14.3533910Z             }
2026-06-21T05:16:14.3533992Z           ]
2026-06-21T05:16:14.3534078Z         },
2026-06-21T05:16:14.3534254Z         "int": {
2026-06-21T05:16:14.3534354Z           "complete": true,
2026-06-21T05:16:14.3534449Z           "evidence": [
2026-06-21T05:16:14.3534530Z             {
2026-06-21T05:16:14.3534669Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-21T05:16:14.3534745Z               "line": 116
2026-06-21T05:16:14.3534840Z             },
2026-06-21T05:16:14.3534922Z             {
2026-06-21T05:16:14.3535059Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-21T05:16:14.3535145Z               "line": 181
2026-06-21T05:16:14.3535228Z             }
2026-06-21T05:16:14.3535313Z           ]
2026-06-21T05:16:14.3535397Z         },
2026-06-21T05:16:14.3535492Z         "unit": {
2026-06-21T05:16:14.3535583Z           "complete": true,
2026-06-21T05:16:14.3535681Z           "evidence": [
2026-06-21T05:16:14.3535772Z             {
2026-06-21T05:16:14.3535896Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T05:16:14.3535992Z               "line": 999
2026-06-21T05:16:14.3536071Z             },
2026-06-21T05:16:14.3536162Z             {
2026-06-21T05:16:14.3536287Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T05:16:14.3536381Z               "line": 1016
2026-06-21T05:16:14.3536472Z             },
2026-06-21T05:16:14.3536555Z             {
2026-06-21T05:16:14.3536687Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T05:16:14.3536777Z               "line": 1024
2026-06-21T05:16:14.3536869Z             },
2026-06-21T05:16:14.3536954Z             {
2026-06-21T05:16:14.3537068Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T05:16:14.3537155Z               "line": 1048
2026-06-21T05:16:14.3537245Z             },
2026-06-21T05:16:14.3537326Z             {
2026-06-21T05:16:14.3537451Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T05:16:14.3537546Z               "line": 1499
2026-06-21T05:16:14.3537631Z             },
2026-06-21T05:16:14.3537722Z             {
2026-06-21T05:16:14.3537842Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T05:16:14.3537926Z               "line": 347
2026-06-21T05:16:14.3538008Z             },
2026-06-21T05:16:14.3538095Z             {
2026-06-21T05:16:14.3538203Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T05:16:14.3538307Z               "line": 370
2026-06-21T05:16:14.3538388Z             },
2026-06-21T05:16:14.3538469Z             {
2026-06-21T05:16:14.3538581Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T05:16:14.3538676Z               "line": 407
2026-06-21T05:16:14.3538753Z             },
2026-06-21T05:16:14.3538840Z             {
2026-06-21T05:16:14.3539049Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T05:16:14.3539130Z               "line": 431
2026-06-21T05:16:14.3539220Z             },
2026-06-21T05:16:14.3539301Z             {
2026-06-21T05:16:14.3539422Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T05:16:14.3539512Z               "line": 483
2026-06-21T05:16:14.3539606Z             },
2026-06-21T05:16:14.3539693Z             {
2026-06-21T05:16:14.3539797Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T05:16:14.3539883Z               "line": 499
2026-06-21T05:16:14.3539969Z             },
2026-06-21T05:16:14.3540274Z             {
2026-06-21T05:16:14.3540385Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T05:16:14.3540493Z               "line": 514
2026-06-21T05:16:14.3540570Z             },
2026-06-21T05:16:14.3540657Z             {
2026-06-21T05:16:14.3540766Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T05:16:14.3540846Z               "line": 531
2026-06-21T05:16:14.3540931Z             }
2026-06-21T05:16:14.3541012Z           ]
2026-06-21T05:16:14.3541101Z         }
2026-06-21T05:16:14.3541182Z       }
2026-06-21T05:16:14.3541262Z     },
2026-06-21T05:16:14.3541348Z     {
2026-06-21T05:16:14.3541440Z       "id": "REQ-MESH-3",
2026-06-21T05:16:14.3543185Z       "title": "Mesh row fan-out: registry rows stay OWN-AUTHORED; the only change is the push target widens from directly-paired peers to ALL roster members (a wider DIRECT fan-out, never a third-party relay). Every row/message still arrives from its author over a handshake → KNOWN-HAZARDS 7.5 (origin = handshake node) and 4.10 (eviction lease: any future update comes from that node itself, alive) PRESERVED VERBATIM. Closes the staggered A→B→C repro: C (roster-seeded with A at pairing) initiates to A, seed-proof admits C unpaired, A learns C, both push directly.",
2026-06-21T05:16:14.3543295Z       "requiredStages": [
2026-06-21T05:16:14.3543379Z         "impl",
2026-06-21T05:16:14.3543465Z         "unit",
2026-06-21T05:16:14.3543538Z         "int"
2026-06-21T05:16:14.3543628Z       ],
2026-06-21T05:16:14.3543713Z       "stages": {
2026-06-21T05:16:14.3543793Z         "doc": {
2026-06-21T05:16:14.3543894Z           "complete": false,
2026-06-21T05:16:14.3543981Z           "evidence": []
2026-06-21T05:16:14.3544079Z         },
2026-06-21T05:16:14.3544160Z         "impl": {
2026-06-21T05:16:14.3544262Z           "complete": true,
2026-06-21T05:16:14.3544361Z           "evidence": [
2026-06-21T05:16:14.3544437Z             {
2026-06-21T05:16:14.3544567Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T05:16:14.3544667Z               "line": 641
2026-06-21T05:16:14.3544756Z             }
2026-06-21T05:16:14.3544838Z           ]
2026-06-21T05:16:14.3544919Z         },
2026-06-21T05:16:14.3545010Z         "int": {
2026-06-21T05:16:14.3545095Z           "complete": true,
2026-06-21T05:16:14.3545192Z           "evidence": [
2026-06-21T05:16:14.3545262Z             {
2026-06-21T05:16:14.3545386Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-21T05:16:14.3545478Z               "line": 373
2026-06-21T05:16:14.3545559Z             },
2026-06-21T05:16:14.3545648Z             {
2026-06-21T05:16:14.3545758Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-21T05:16:14.3545859Z               "line": 436
2026-06-21T05:16:14.3545943Z             }
2026-06-21T05:16:14.3546029Z           ]
2026-06-21T05:16:14.3546115Z         },
2026-06-21T05:16:14.3546209Z         "unit": {
2026-06-21T05:16:14.3546308Z           "complete": true,
2026-06-21T05:16:14.3546393Z           "evidence": [
2026-06-21T05:16:14.3546494Z             {
2026-06-21T05:16:14.3546617Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T05:16:14.3546718Z               "line": 910
2026-06-21T05:16:14.3546800Z             }
2026-06-21T05:16:14.3546895Z           ]
2026-06-21T05:16:14.3546980Z         }
2026-06-21T05:16:14.3547052Z       }
2026-06-21T05:16:14.3547134Z     },
2026-06-21T05:16:14.3547214Z     {
2026-06-21T05:16:14.3547309Z       "id": "REQ-MESH-4",
2026-06-21T05:16:14.3549494Z       "title": "Revoke + timeboxed seed rotation + re-seed grace: `spt subnet revoke <node>...` (list, elevation-gated, revoke-only) writes roster tombstones immediately, then schedules ONE seed rotation (re-mint seed, bump seed_epoch, push new seed CONFIDENTIALLY over member-auth'd TLS connections — never in roster/registry gossip — force-drop revokees) at the close of a coalescing window (default 1h); further revokes in the window join the same rotation (one epoch bump). `--force-rotate-seed` rotates immediately (compromised-node path). RE-SEED GRACE: a node proving the immediately-prior epoch (N-1) AND still on the roster gets a re-seed-only restricted connection (auto-heals a benign offliner); revoked/off-roster denied; ≥2 stale → re-pair.",
2026-06-21T05:16:14.3549738Z       "requiredStages": [
2026-06-21T05:16:14.3549823Z         "impl",
2026-06-21T05:16:14.3549909Z         "unit",
2026-06-21T05:16:14.3550001Z         "int"
2026-06-21T05:16:14.3550077Z       ],
2026-06-21T05:16:14.3550166Z       "stages": {
2026-06-21T05:16:14.3550258Z         "doc": {
2026-06-21T05:16:14.3550339Z           "complete": false,
2026-06-21T05:16:14.3550434Z           "evidence": []
2026-06-21T05:16:14.3550602Z         },
2026-06-21T05:16:14.3550686Z         "impl": {
2026-06-21T05:16:14.3550777Z           "complete": true,
2026-06-21T05:16:14.3550858Z           "evidence": [
2026-06-21T05:16:14.3550945Z             {
2026-06-21T05:16:14.3551077Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-21T05:16:14.3551173Z               "line": 33
2026-06-21T05:16:14.3551255Z             },
2026-06-21T05:16:14.3551340Z             {
2026-06-21T05:16:14.3551476Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T05:16:14.3551568Z               "line": 68
2026-06-21T05:16:14.3551657Z             },
2026-06-21T05:16:14.3551737Z             {
2026-06-21T05:16:14.3551865Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T05:16:14.3551947Z               "line": 111
2026-06-21T05:16:14.3552032Z             },
2026-06-21T05:16:14.3552122Z             {
2026-06-21T05:16:14.3552233Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T05:16:14.3552329Z               "line": 462
2026-06-21T05:16:14.3552414Z             },
2026-06-21T05:16:14.3552500Z             {
2026-06-21T05:16:14.3552610Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T05:16:14.3552700Z               "line": 711
2026-06-21T05:16:14.3552786Z             },
2026-06-21T05:16:14.3552882Z             {
2026-06-21T05:16:14.3552996Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T05:16:14.3553081Z               "line": 725
2026-06-21T05:16:14.3553169Z             },
2026-06-21T05:16:14.3553253Z             {
2026-06-21T05:16:14.3553358Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.3553449Z               "line": 132
2026-06-21T05:16:14.3553530Z             },
2026-06-21T05:16:14.3553615Z             {
2026-06-21T05:16:14.3553735Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-21T05:16:14.3553831Z               "line": 26
2026-06-21T05:16:14.3553915Z             },
2026-06-21T05:16:14.3554012Z             {
2026-06-21T05:16:14.3554137Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-21T05:16:14.3554216Z               "line": 97
2026-06-21T05:16:14.3554306Z             },
2026-06-21T05:16:14.3554391Z             {
2026-06-21T05:16:14.3554507Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-21T05:16:14.3554607Z               "line": 119
2026-06-21T05:16:14.3554687Z             },
2026-06-21T05:16:14.3554764Z             {
2026-06-21T05:16:14.3554869Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T05:16:14.3554959Z               "line": 82
2026-06-21T05:16:14.3555045Z             },
2026-06-21T05:16:14.3555136Z             {
2026-06-21T05:16:14.3555255Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T05:16:14.3555336Z               "line": 111
2026-06-21T05:16:14.3555427Z             },
2026-06-21T05:16:14.3555508Z             {
2026-06-21T05:16:14.3555621Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T05:16:14.3555709Z               "line": 232
2026-06-21T05:16:14.3555794Z             },
2026-06-21T05:16:14.3555880Z             {
2026-06-21T05:16:14.3555980Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T05:16:14.3556066Z               "line": 245
2026-06-21T05:16:14.3556156Z             },
2026-06-21T05:16:14.3556343Z             {
2026-06-21T05:16:14.3556452Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3556546Z               "line": 4665
2026-06-21T05:16:14.3556636Z             }
2026-06-21T05:16:14.3556717Z           ]
2026-06-21T05:16:14.3556811Z         },
2026-06-21T05:16:14.3556896Z         "int": {
2026-06-21T05:16:14.3556983Z           "complete": true,
2026-06-21T05:16:14.3557069Z           "evidence": [
2026-06-21T05:16:14.3557159Z             {
2026-06-21T05:16:14.3557278Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-21T05:16:14.3557360Z               "line": 98
2026-06-21T05:16:14.3557441Z             },
2026-06-21T05:16:14.3557597Z             {
2026-06-21T05:16:14.3557722Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-21T05:16:14.3557807Z               "line": 140
2026-06-21T05:16:14.3557893Z             }
2026-06-21T05:16:14.3557980Z           ]
2026-06-21T05:16:14.3558065Z         },
2026-06-21T05:16:14.3558150Z         "unit": {
2026-06-21T05:16:14.3558256Z           "complete": true,
2026-06-21T05:16:14.3558351Z           "evidence": [
2026-06-21T05:16:14.3558432Z             {
2026-06-21T05:16:14.3558556Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-21T05:16:14.3558648Z               "line": 178
2026-06-21T05:16:14.3558722Z             },
2026-06-21T05:16:14.3558813Z             {
2026-06-21T05:16:14.3558939Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-21T05:16:14.3559090Z               "line": 242
2026-06-21T05:16:14.3559176Z             },
2026-06-21T05:16:14.3559263Z             {
2026-06-21T05:16:14.3559399Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T05:16:14.3559513Z               "line": 1079
2026-06-21T05:16:14.3559604Z             },
2026-06-21T05:16:14.3559688Z             {
2026-06-21T05:16:14.3559815Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T05:16:14.3559912Z               "line": 1109
2026-06-21T05:16:14.3559989Z             },
2026-06-21T05:16:14.3560083Z             {
2026-06-21T05:16:14.3560198Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-21T05:16:14.3560293Z               "line": 1129
2026-06-21T05:16:14.3560373Z             },
2026-06-21T05:16:14.3560450Z             {
2026-06-21T05:16:14.3560580Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-21T05:16:14.3560665Z               "line": 602
2026-06-21T05:16:14.3560750Z             },
2026-06-21T05:16:14.3560827Z             {
2026-06-21T05:16:14.3560941Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-21T05:16:14.3561027Z               "line": 148
2026-06-21T05:16:14.3561123Z             },
2026-06-21T05:16:14.3561200Z             {
2026-06-21T05:16:14.3561313Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-21T05:16:14.3561404Z               "line": 169
2026-06-21T05:16:14.3561486Z             },
2026-06-21T05:16:14.3561575Z             {
2026-06-21T05:16:14.3561680Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-21T05:16:14.3561777Z               "line": 181
2026-06-21T05:16:14.3561863Z             },
2026-06-21T05:16:14.3561942Z             {
2026-06-21T05:16:14.3562065Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-21T05:16:14.3562147Z               "line": 202
2026-06-21T05:16:14.3562235Z             },
2026-06-21T05:16:14.3562307Z             {
2026-06-21T05:16:14.3562430Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T05:16:14.3562532Z               "line": 375
2026-06-21T05:16:14.3562612Z             },
2026-06-21T05:16:14.3562702Z             {
2026-06-21T05:16:14.3562812Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T05:16:14.3565867Z               "line": 407
2026-06-21T05:16:14.3565973Z             },
2026-06-21T05:16:14.3566068Z             {
2026-06-21T05:16:14.3566191Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3566288Z               "line": 10052
2026-06-21T05:16:14.3566525Z             }
2026-06-21T05:16:14.3566608Z           ]
2026-06-21T05:16:14.3566697Z         }
2026-06-21T05:16:14.3566778Z       }
2026-06-21T05:16:14.3566855Z     },
2026-06-21T05:16:14.3566941Z     {
2026-06-21T05:16:14.3567035Z       "id": "REQ-MESH-5",
2026-06-21T05:16:14.3568438Z       "title": "Hard cutover from pairwise trust: delete peers.json + the is_trusted authorization path (no migration — expendable test fleet, re-pairs fresh under the new model, user decision 2026-06-08). Warn-on-change DEMOTED from a gate to an awareness notice anchored on machine_id (not label): 'machine M, last seen as K1, now presents K2' — fires the same event as the REQ-SUBNET-7 re-pair overwrite. The TrustStore/peers.json code and its call sites are removed, not left dead.",
2026-06-21T05:16:14.3568644Z       "requiredStages": [
2026-06-21T05:16:14.3568725Z         "impl",
2026-06-21T05:16:14.3568811Z         "unit"
2026-06-21T05:16:14.3568888Z       ],
2026-06-21T05:16:14.3569107Z       "stages": {
2026-06-21T05:16:14.3569208Z         "doc": {
2026-06-21T05:16:14.3569297Z           "complete": false,
2026-06-21T05:16:14.3569387Z           "evidence": []
2026-06-21T05:16:14.3569470Z         },
2026-06-21T05:16:14.3569551Z         "impl": {
2026-06-21T05:16:14.3569635Z           "complete": true,
2026-06-21T05:16:14.3569722Z           "evidence": [
2026-06-21T05:16:14.3569804Z             {
2026-06-21T05:16:14.3569936Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-21T05:16:14.3570030Z               "line": 61
2026-06-21T05:16:14.3570112Z             },
2026-06-21T05:16:14.3570197Z             {
2026-06-21T05:16:14.3570318Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-21T05:16:14.3570419Z               "line": 109
2026-06-21T05:16:14.3570501Z             },
2026-06-21T05:16:14.3570586Z             {
2026-06-21T05:16:14.3570714Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T05:16:14.3570797Z               "line": 104
2026-06-21T05:16:14.3570883Z             },
2026-06-21T05:16:14.3570972Z             {
2026-06-21T05:16:14.3571097Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T05:16:14.3571177Z               "line": 105
2026-06-21T05:16:14.3571263Z             },
2026-06-21T05:16:14.3571344Z             {
2026-06-21T05:16:14.3571473Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.3571564Z               "line": 85
2026-06-21T05:16:14.3571645Z             },
2026-06-21T05:16:14.3571736Z             {
2026-06-21T05:16:14.3571858Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.3571945Z               "line": 250
2026-06-21T05:16:14.3572032Z             },
2026-06-21T05:16:14.3572113Z             {
2026-06-21T05:16:14.3572240Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.3572328Z               "line": 314
2026-06-21T05:16:14.3572418Z             },
2026-06-21T05:16:14.3572497Z             {
2026-06-21T05:16:14.3572625Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.3572726Z               "line": 767
2026-06-21T05:16:14.3572810Z             },
2026-06-21T05:16:14.3572895Z             {
2026-06-21T05:16:14.3573005Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T05:16:14.3573097Z               "line": 101
2026-06-21T05:16:14.3573172Z             },
2026-06-21T05:16:14.3573262Z             {
2026-06-21T05:16:14.3573382Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T05:16:14.3573472Z               "line": 193
2026-06-21T05:16:14.3573562Z             }
2026-06-21T05:16:14.3573645Z           ]
2026-06-21T05:16:14.3573725Z         },
2026-06-21T05:16:14.3573810Z         "int": {
2026-06-21T05:16:14.3573906Z           "complete": false,
2026-06-21T05:16:14.3573993Z           "evidence": []
2026-06-21T05:16:14.3574073Z         },
2026-06-21T05:16:14.3574163Z         "unit": {
2026-06-21T05:16:14.3574259Z           "complete": true,
2026-06-21T05:16:14.3574345Z           "evidence": [
2026-06-21T05:16:14.3574535Z             {
2026-06-21T05:16:14.3574669Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.3574764Z               "line": 1009
2026-06-21T05:16:14.3574845Z             },
2026-06-21T05:16:14.3574933Z             {
2026-06-21T05:16:14.3575040Z               "path": "crates/spt-store/src/roster.rs",
2026-06-21T05:16:14.3575136Z               "line": 462
2026-06-21T05:16:14.3575223Z             }
2026-06-21T05:16:14.3575309Z           ]
2026-06-21T05:16:14.3575388Z         }
2026-06-21T05:16:14.3575468Z       }
2026-06-21T05:16:14.3575550Z     },
2026-06-21T05:16:14.3575632Z     {
2026-06-21T05:16:14.3575826Z       "id": "REQ-MESH-6",
2026-06-21T05:16:14.3577028Z       "title": "Concurrent liveness probes: `spt subnet status --nodes` fans out its offline/serve-probes (REQ-SUBNET-5) CONCURRENTLY — total wall-time bounded by the single-probe ceiling (~3s), never k×ceiling. The mesh makes a node see ALL members (many possibly offline), so a serial probe loop would be offline_count×3s. (Planning verifies the current REQ-SUBNET-5 probe loop's behavior and fixes it if serial.)",
2026-06-21T05:16:14.3577139Z       "requiredStages": [
2026-06-21T05:16:14.3577234Z         "impl",
2026-06-21T05:16:14.3577314Z         "unit"
2026-06-21T05:16:14.3577400Z       ],
2026-06-21T05:16:14.3577488Z       "stages": {
2026-06-21T05:16:14.3577576Z         "doc": {
2026-06-21T05:16:14.3577671Z           "complete": false,
2026-06-21T05:16:14.3577761Z           "evidence": []
2026-06-21T05:16:14.3577852Z         },
2026-06-21T05:16:14.3577936Z         "impl": {
2026-06-21T05:16:14.3578021Z           "complete": true,
2026-06-21T05:16:14.3578112Z           "evidence": [
2026-06-21T05:16:14.3578199Z             {
2026-06-21T05:16:14.3578308Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3578389Z               "line": 4181
2026-06-21T05:16:14.3578480Z             }
2026-06-21T05:16:14.3578561Z           ]
2026-06-21T05:16:14.3578650Z         },
2026-06-21T05:16:14.3578747Z         "int": {
2026-06-21T05:16:14.3578837Z           "complete": false,
2026-06-21T05:16:14.3578932Z           "evidence": []
2026-06-21T05:16:14.3579081Z         },
2026-06-21T05:16:14.3579176Z         "unit": {
2026-06-21T05:16:14.3579266Z           "complete": true,
2026-06-21T05:16:14.3579371Z           "evidence": [
2026-06-21T05:16:14.3579457Z             {
2026-06-21T05:16:14.3579557Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3579647Z               "line": 10602
2026-06-21T05:16:14.3579730Z             },
2026-06-21T05:16:14.3579814Z             {
2026-06-21T05:16:14.3579919Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3580021Z               "line": 10629
2026-06-21T05:16:14.3580097Z             },
2026-06-21T05:16:14.3580186Z             {
2026-06-21T05:16:14.3580287Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3580373Z               "line": 10653
2026-06-21T05:16:14.3580454Z             }
2026-06-21T05:16:14.3580543Z           ]
2026-06-21T05:16:14.3580628Z         }
2026-06-21T05:16:14.3580714Z       }
2026-06-21T05:16:14.3580803Z     },
2026-06-21T05:16:14.3580893Z     {
2026-06-21T05:16:14.3580979Z       "id": "REQ-MIGRATE-1",
2026-06-21T05:16:14.3581151Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-21T05:16:14.3581246Z       "requiredStages": [],
2026-06-21T05:16:14.3581338Z       "stages": {
2026-06-21T05:16:14.3581418Z         "doc": {
2026-06-21T05:16:14.3581513Z           "complete": false,
2026-06-21T05:16:14.3581604Z           "evidence": []
2026-06-21T05:16:14.3581691Z         },
2026-06-21T05:16:14.3581772Z         "impl": {
2026-06-21T05:16:14.3581870Z           "complete": false,
2026-06-21T05:16:14.3581957Z           "evidence": []
2026-06-21T05:16:14.3582038Z         },
2026-06-21T05:16:14.3582129Z         "int": {
2026-06-21T05:16:14.3582224Z           "complete": false,
2026-06-21T05:16:14.3582311Z           "evidence": []
2026-06-21T05:16:14.3582524Z         },
2026-06-21T05:16:14.3582606Z         "unit": {
2026-06-21T05:16:14.3582696Z           "complete": false,
2026-06-21T05:16:14.3582787Z           "evidence": []
2026-06-21T05:16:14.3582873Z         }
2026-06-21T05:16:14.3582959Z       }
2026-06-21T05:16:14.3583044Z     },
2026-06-21T05:16:14.3583129Z     {
2026-06-21T05:16:14.3583215Z       "id": "REQ-MSG-1",
2026-06-21T05:16:14.3583632Z       "title": "Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)",
2026-06-21T05:16:14.3583732Z       "requiredStages": [
2026-06-21T05:16:14.3583817Z         "impl",
2026-06-21T05:16:14.3584005Z         "unit",
2026-06-21T05:16:14.3584089Z         "int"
2026-06-21T05:16:14.3584181Z       ],
2026-06-21T05:16:14.3584266Z       "stages": {
2026-06-21T05:16:14.3584352Z         "doc": {
2026-06-21T05:16:14.3584456Z           "complete": false,
2026-06-21T05:16:14.3584539Z           "evidence": []
2026-06-21T05:16:14.3584633Z         },
2026-06-21T05:16:14.3584718Z         "impl": {
2026-06-21T05:16:14.3584805Z           "complete": true,
2026-06-21T05:16:14.3584892Z           "evidence": [
2026-06-21T05:16:14.3584972Z             {
2026-06-21T05:16:14.3585096Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T05:16:14.3585187Z               "line": 28
2026-06-21T05:16:14.3585262Z             },
2026-06-21T05:16:14.3585348Z             {
2026-06-21T05:16:14.3585473Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T05:16:14.3585563Z               "line": 94
2026-06-21T05:16:14.3585644Z             },
2026-06-21T05:16:14.3585730Z             {
2026-06-21T05:16:14.3585846Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T05:16:14.3585929Z               "line": 127
2026-06-21T05:16:14.3586015Z             },
2026-06-21T05:16:14.3586096Z             {
2026-06-21T05:16:14.3586207Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T05:16:14.3586301Z               "line": 149
2026-06-21T05:16:14.3586391Z             },
2026-06-21T05:16:14.3586469Z             {
2026-06-21T05:16:14.3586578Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T05:16:14.3586668Z               "line": 174
2026-06-21T05:16:14.3586755Z             },
2026-06-21T05:16:14.3586840Z             {
2026-06-21T05:16:14.3586959Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-21T05:16:14.3587050Z               "line": 18
2026-06-21T05:16:14.3587131Z             },
2026-06-21T05:16:14.3587221Z             {
2026-06-21T05:16:14.3587330Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-21T05:16:14.3587413Z               "line": 13
2026-06-21T05:16:14.3587502Z             },
2026-06-21T05:16:14.3587593Z             {
2026-06-21T05:16:14.3587699Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-21T05:16:14.3587789Z               "line": 62
2026-06-21T05:16:14.3587874Z             },
2026-06-21T05:16:14.3587956Z             {
2026-06-21T05:16:14.3588076Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-21T05:16:14.3588160Z               "line": 13
2026-06-21T05:16:14.3588245Z             }
2026-06-21T05:16:14.3588336Z           ]
2026-06-21T05:16:14.3588407Z         },
2026-06-21T05:16:14.3588491Z         "int": {
2026-06-21T05:16:14.3588586Z           "complete": true,
2026-06-21T05:16:14.3588677Z           "evidence": [
2026-06-21T05:16:14.3588759Z             {
2026-06-21T05:16:14.3588891Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-21T05:16:14.3589030Z               "line": 9
2026-06-21T05:16:14.3589102Z             },
2026-06-21T05:16:14.3589187Z             {
2026-06-21T05:16:14.3589322Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-21T05:16:14.3589417Z               "line": 56
2026-06-21T05:16:14.3589511Z             },
2026-06-21T05:16:14.3589622Z             {
2026-06-21T05:16:14.3589750Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-21T05:16:14.3589951Z               "line": 113
2026-06-21T05:16:14.3590041Z             }
2026-06-21T05:16:14.3590117Z           ]
2026-06-21T05:16:14.3590197Z         },
2026-06-21T05:16:14.3590281Z         "unit": {
2026-06-21T05:16:14.3590374Z           "complete": true,
2026-06-21T05:16:14.3590461Z           "evidence": [
2026-06-21T05:16:14.3590542Z             {
2026-06-21T05:16:14.3590657Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T05:16:14.3590741Z               "line": 203
2026-06-21T05:16:14.3590823Z             },
2026-06-21T05:16:14.3590905Z             {
2026-06-21T05:16:14.3591023Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T05:16:14.3591217Z               "line": 232
2026-06-21T05:16:14.3591298Z             },
2026-06-21T05:16:14.3591377Z             {
2026-06-21T05:16:14.3591486Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T05:16:14.3591573Z               "line": 277
2026-06-21T05:16:14.3591654Z             },
2026-06-21T05:16:14.3591744Z             {
2026-06-21T05:16:14.3591854Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T05:16:14.3591926Z               "line": 300
2026-06-21T05:16:14.3592007Z             },
2026-06-21T05:16:14.3592083Z             {
2026-06-21T05:16:14.3592194Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-21T05:16:14.3592279Z               "line": 325
2026-06-21T05:16:14.3592364Z             },
2026-06-21T05:16:14.3592450Z             {
2026-06-21T05:16:14.3592556Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-21T05:16:14.3592641Z               "line": 204
2026-06-21T05:16:14.3592726Z             },
2026-06-21T05:16:14.3592813Z             {
2026-06-21T05:16:14.3592923Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-21T05:16:14.3593013Z               "line": 237
2026-06-21T05:16:14.3593099Z             },
2026-06-21T05:16:14.3593171Z             {
2026-06-21T05:16:14.3593275Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-21T05:16:14.3593370Z               "line": 251
2026-06-21T05:16:14.3593458Z             },
2026-06-21T05:16:14.3593548Z             {
2026-06-21T05:16:14.3593650Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-21T05:16:14.3593736Z               "line": 263
2026-06-21T05:16:14.3593822Z             },
2026-06-21T05:16:14.3593907Z             {
2026-06-21T05:16:14.3594020Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-21T05:16:14.3594111Z               "line": 162
2026-06-21T05:16:14.3594192Z             },
2026-06-21T05:16:14.3594269Z             {
2026-06-21T05:16:14.3594378Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-21T05:16:14.3594460Z               "line": 242
2026-06-21T05:16:14.3594545Z             },
2026-06-21T05:16:14.3594630Z             {
2026-06-21T05:16:14.3594736Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-21T05:16:14.3594827Z               "line": 134
2026-06-21T05:16:14.3594908Z             },
2026-06-21T05:16:14.3594988Z             {
2026-06-21T05:16:14.3595094Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-21T05:16:14.3595184Z               "line": 153
2026-06-21T05:16:14.3595269Z             }
2026-06-21T05:16:14.3595355Z           ]
2026-06-21T05:16:14.3595447Z         }
2026-06-21T05:16:14.3595527Z       }
2026-06-21T05:16:14.3595617Z     },
2026-06-21T05:16:14.3595700Z     {
2026-06-21T05:16:14.3595790Z       "id": "REQ-MSG-2",
2026-06-21T05:16:14.3596053Z       "title": "spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes",
2026-06-21T05:16:14.3596152Z       "requiredStages": [
2026-06-21T05:16:14.3596237Z         "impl",
2026-06-21T05:16:14.3596330Z         "unit"
2026-06-21T05:16:14.3596415Z       ],
2026-06-21T05:16:14.3596499Z       "stages": {
2026-06-21T05:16:14.3596584Z         "doc": {
2026-06-21T05:16:14.3596680Z           "complete": false,
2026-06-21T05:16:14.3596762Z           "evidence": []
2026-06-21T05:16:14.3596842Z         },
2026-06-21T05:16:14.3597004Z         "impl": {
2026-06-21T05:16:14.3597095Z           "complete": true,
2026-06-21T05:16:14.3597180Z           "evidence": [
2026-06-21T05:16:14.3597271Z             {
2026-06-21T05:16:14.3597372Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3597467Z               "line": 11
2026-06-21T05:16:14.3597552Z             },
2026-06-21T05:16:14.3597634Z             {
2026-06-21T05:16:14.3597739Z               "path": "crates/spt/src/main.rs",
2026-06-21T05:16:14.3597824Z               "line": 8
2026-06-21T05:16:14.3597905Z             }
2026-06-21T05:16:14.3597988Z           ]
2026-06-21T05:16:14.3598072Z         },
2026-06-21T05:16:14.3598158Z         "int": {
2026-06-21T05:16:14.3598326Z           "complete": false,
2026-06-21T05:16:14.3598420Z           "evidence": []
2026-06-21T05:16:14.3598506Z         },
2026-06-21T05:16:14.3598583Z         "unit": {
2026-06-21T05:16:14.3598674Z           "complete": true,
2026-06-21T05:16:14.3598758Z           "evidence": [
2026-06-21T05:16:14.3598843Z             {
2026-06-21T05:16:14.3599019Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3599104Z               "line": 7717
2026-06-21T05:16:14.3599179Z             },
2026-06-21T05:16:14.3599266Z             {
2026-06-21T05:16:14.3599375Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3599470Z               "line": 7759
2026-06-21T05:16:14.3599552Z             },
2026-06-21T05:16:14.3599638Z             {
2026-06-21T05:16:14.3599747Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3599823Z               "line": 7808
2026-06-21T05:16:14.3599901Z             },
2026-06-21T05:16:14.3599986Z             {
2026-06-21T05:16:14.3600100Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3600197Z               "line": 7831
2026-06-21T05:16:14.3600277Z             },
2026-06-21T05:16:14.3600362Z             {
2026-06-21T05:16:14.3600467Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3600563Z               "line": 9807
2026-06-21T05:16:14.3600658Z             },
2026-06-21T05:16:14.3600749Z             {
2026-06-21T05:16:14.3600855Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3600944Z               "line": 9816
2026-06-21T05:16:14.3601030Z             },
2026-06-21T05:16:14.3601121Z             {
2026-06-21T05:16:14.3601226Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3601306Z               "line": 9830
2026-06-21T05:16:14.3601402Z             }
2026-06-21T05:16:14.3601489Z           ]
2026-06-21T05:16:14.3601569Z         }
2026-06-21T05:16:14.3601659Z       }
2026-06-21T05:16:14.3601744Z     },
2026-06-21T05:16:14.3601825Z     {
2026-06-21T05:16:14.3601919Z       "id": "REQ-MSG-3",
2026-06-21T05:16:14.3602295Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-21T05:16:14.3602395Z       "requiredStages": [
2026-06-21T05:16:14.3602472Z         "impl",
2026-06-21T05:16:14.3602567Z         "unit",
2026-06-21T05:16:14.3602648Z         "int"
2026-06-21T05:16:14.3602739Z       ],
2026-06-21T05:16:14.3602820Z       "stages": {
2026-06-21T05:16:14.3602910Z         "doc": {
2026-06-21T05:16:14.3603010Z           "complete": false,
2026-06-21T05:16:14.3603088Z           "evidence": []
2026-06-21T05:16:14.3603168Z         },
2026-06-21T05:16:14.3603253Z         "impl": {
2026-06-21T05:16:14.3603339Z           "complete": true,
2026-06-21T05:16:14.3603435Z           "evidence": [
2026-06-21T05:16:14.3603516Z             {
2026-06-21T05:16:14.3603644Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-21T05:16:14.3603727Z               "line": 19
2026-06-21T05:16:14.3603816Z             },
2026-06-21T05:16:14.3603897Z             {
2026-06-21T05:16:14.3604008Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-21T05:16:14.3604103Z               "line": 21
2026-06-21T05:16:14.3604188Z             },
2026-06-21T05:16:14.3604268Z             {
2026-06-21T05:16:14.3604504Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-21T05:16:14.3604589Z               "line": 48
2026-06-21T05:16:14.3604676Z             },
2026-06-21T05:16:14.3604757Z             {
2026-06-21T05:16:14.3604871Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-21T05:16:14.3604961Z               "line": 174
2026-06-21T05:16:14.3605049Z             }
2026-06-21T05:16:14.3605134Z           ]
2026-06-21T05:16:14.3605223Z         },
2026-06-21T05:16:14.3605311Z         "int": {
2026-06-21T05:16:14.3605406Z           "complete": true,
2026-06-21T05:16:14.3605501Z           "evidence": [
2026-06-21T05:16:14.3605577Z             {
2026-06-21T05:16:14.3605839Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-21T05:16:14.3605925Z               "line": 10
2026-06-21T05:16:14.3606016Z             },
2026-06-21T05:16:14.3606097Z             {
2026-06-21T05:16:14.3606235Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-21T05:16:14.3606341Z               "line": 56
2026-06-21T05:16:14.3606430Z             }
2026-06-21T05:16:14.3606507Z           ]
2026-06-21T05:16:14.3606580Z         },
2026-06-21T05:16:14.3606665Z         "unit": {
2026-06-21T05:16:14.3606749Z           "complete": true,
2026-06-21T05:16:14.3606836Z           "evidence": [
2026-06-21T05:16:14.3606927Z             {
2026-06-21T05:16:14.3607036Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-21T05:16:14.3607121Z               "line": 228
2026-06-21T05:16:14.3607207Z             },
2026-06-21T05:16:14.3607298Z             {
2026-06-21T05:16:14.3607397Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-21T05:16:14.3607502Z               "line": 247
2026-06-21T05:16:14.3607594Z             },
2026-06-21T05:16:14.3607675Z             {
2026-06-21T05:16:14.3607778Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-21T05:16:14.3607865Z               "line": 270
2026-06-21T05:16:14.3607956Z             }
2026-06-21T05:16:14.3608032Z           ]
2026-06-21T05:16:14.3608127Z         }
2026-06-21T05:16:14.3608214Z       }
2026-06-21T05:16:14.3608299Z     },
2026-06-21T05:16:14.3608379Z     {
2026-06-21T05:16:14.3608465Z       "id": "REQ-MSG-4",
2026-06-21T05:16:14.3609352Z       "title": "Listener stream stdout emits EVENT envelope lines (sister-format, ADR-0001): parse the __REPLY_TO__ frame, pass pre-formed typed envelopes through verbatim (no double-wrap), compose <EVENT type=\"msg\" from=…> otherwise, chunk oversized lines into EVENT-PART",
2026-06-21T05:16:14.3609452Z       "requiredStages": [
2026-06-21T05:16:14.3609528Z         "impl",
2026-06-21T05:16:14.3609607Z         "unit",
2026-06-21T05:16:14.3609683Z         "int"
2026-06-21T05:16:14.3609774Z       ],
2026-06-21T05:16:14.3609860Z       "stages": {
2026-06-21T05:16:14.3609940Z         "doc": {
2026-06-21T05:16:14.3610035Z           "complete": false,
2026-06-21T05:16:14.3610112Z           "evidence": []
2026-06-21T05:16:14.3610194Z         },
2026-06-21T05:16:14.3610279Z         "impl": {
2026-06-21T05:16:14.3610373Z           "complete": true,
2026-06-21T05:16:14.3610461Z           "evidence": [
2026-06-21T05:16:14.3610546Z             {
2026-06-21T05:16:14.3610655Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-21T05:16:14.3610737Z               "line": 19
2026-06-21T05:16:14.3610827Z             },
2026-06-21T05:16:14.3610908Z             {
2026-06-21T05:16:14.3611013Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-21T05:16:14.3611095Z               "line": 46
2026-06-21T05:16:14.3611185Z             },
2026-06-21T05:16:14.3611270Z             {
2026-06-21T05:16:14.3611372Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.3611466Z               "line": 532
2026-06-21T05:16:14.3611542Z             },
2026-06-21T05:16:14.3611623Z             {
2026-06-21T05:16:14.3611725Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3611823Z               "line": 3110
2026-06-21T05:16:14.3611910Z             }
2026-06-21T05:16:14.3612083Z           ]
2026-06-21T05:16:14.3612171Z         },
2026-06-21T05:16:14.3612247Z         "int": {
2026-06-21T05:16:14.3612347Z           "complete": true,
2026-06-21T05:16:14.3612428Z           "evidence": [
2026-06-21T05:16:14.3612512Z             {
2026-06-21T05:16:14.3612631Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-21T05:16:14.3612722Z               "line": 98
2026-06-21T05:16:14.3612803Z             },
2026-06-21T05:16:14.3612884Z             {
2026-06-21T05:16:14.3613009Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-21T05:16:14.3613089Z               "line": 128
2026-06-21T05:16:14.3613184Z             }
2026-06-21T05:16:14.3613366Z           ]
2026-06-21T05:16:14.3613447Z         },
2026-06-21T05:16:14.3613537Z         "unit": {
2026-06-21T05:16:14.3613628Z           "complete": true,
2026-06-21T05:16:14.3613728Z           "evidence": [
2026-06-21T05:16:14.3613809Z             {
2026-06-21T05:16:14.3613928Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-21T05:16:14.3614024Z               "line": 68
2026-06-21T05:16:14.3614109Z             },
2026-06-21T05:16:14.3614199Z             {
2026-06-21T05:16:14.3614292Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-21T05:16:14.3614381Z               "line": 79
2026-06-21T05:16:14.3614467Z             },
2026-06-21T05:16:14.3614549Z             {
2026-06-21T05:16:14.3614653Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-21T05:16:14.3614743Z               "line": 90
2026-06-21T05:16:14.3614828Z             },
2026-06-21T05:16:14.3614914Z             {
2026-06-21T05:16:14.3615018Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-21T05:16:14.3615112Z               "line": 151
2026-06-21T05:16:14.3615197Z             }
2026-06-21T05:16:14.3615284Z           ]
2026-06-21T05:16:14.3615361Z         }
2026-06-21T05:16:14.3615450Z       }
2026-06-21T05:16:14.3615531Z     },
2026-06-21T05:16:14.3615618Z     {
2026-06-21T05:16:14.3615708Z       "id": "REQ-MSG-5",
2026-06-21T05:16:14.3616418Z       "title": "user-msg envelope kind + daemon identity gate: a Gateway endpoint / the local user's CLI author user-msg (the user's authority); agent-family senders re-stamped to plain msg; identity-gated never payload-trusted (KH 7.3/7.5); wire-additive (N-1 receivers tolerate the new type)",
2026-06-21T05:16:14.3616515Z       "requiredStages": [
2026-06-21T05:16:14.3616595Z         "doc",
2026-06-21T05:16:14.3616695Z         "impl",
2026-06-21T05:16:14.3616776Z         "unit"
2026-06-21T05:16:14.3616867Z       ],
2026-06-21T05:16:14.3616953Z       "stages": {
2026-06-21T05:16:14.3617043Z         "doc": {
2026-06-21T05:16:14.3617140Z           "complete": true,
2026-06-21T05:16:14.3617239Z           "evidence": [
2026-06-21T05:16:14.3617329Z             {
2026-06-21T05:16:14.3617425Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.3617521Z               "line": 231
2026-06-21T05:16:14.3617605Z             }
2026-06-21T05:16:14.3617695Z           ]
2026-06-21T05:16:14.3617781Z         },
2026-06-21T05:16:14.3617872Z         "impl": {
2026-06-21T05:16:14.3617967Z           "complete": true,
2026-06-21T05:16:14.3618048Z           "evidence": [
2026-06-21T05:16:14.3618134Z             {
2026-06-21T05:16:14.3618245Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-21T05:16:14.3618334Z               "line": 60
2026-06-21T05:16:14.3618416Z             },
2026-06-21T05:16:14.3618502Z             {
2026-06-21T05:16:14.3618620Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T05:16:14.3618706Z               "line": 126
2026-06-21T05:16:14.3618793Z             },
2026-06-21T05:16:14.3618873Z             {
2026-06-21T05:16:14.3619060Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T05:16:14.3619155Z               "line": 135
2026-06-21T05:16:14.3619236Z             },
2026-06-21T05:16:14.3619326Z             {
2026-06-21T05:16:14.3619432Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T05:16:14.3619526Z               "line": 149
2026-06-21T05:16:14.3619713Z             },
2026-06-21T05:16:14.3619804Z             {
2026-06-21T05:16:14.3619921Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T05:16:14.3620002Z               "line": 178
2026-06-21T05:16:14.3620088Z             },
2026-06-21T05:16:14.3620172Z             {
2026-06-21T05:16:14.3620271Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3620362Z               "line": 2802
2026-06-21T05:16:14.3620444Z             }
2026-06-21T05:16:14.3620534Z           ]
2026-06-21T05:16:14.3620605Z         },
2026-06-21T05:16:14.3620691Z         "int": {
2026-06-21T05:16:14.3620782Z           "complete": true,
2026-06-21T05:16:14.3620968Z           "evidence": [
2026-06-21T05:16:14.3621059Z             {
2026-06-21T05:16:14.3621172Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-21T05:16:14.3621268Z               "line": 19
2026-06-21T05:16:14.3621350Z             }
2026-06-21T05:16:14.3621430Z           ]
2026-06-21T05:16:14.3621515Z         },
2026-06-21T05:16:14.3621612Z         "unit": {
2026-06-21T05:16:14.3621707Z           "complete": true,
2026-06-21T05:16:14.3621788Z           "evidence": [
2026-06-21T05:16:14.3621883Z             {
2026-06-21T05:16:14.3621989Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-21T05:16:14.3622078Z               "line": 192
2026-06-21T05:16:14.3622164Z             },
2026-06-21T05:16:14.3622252Z             {
2026-06-21T05:16:14.3622374Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-21T05:16:14.3622460Z               "line": 154
2026-06-21T05:16:14.3622547Z             },
2026-06-21T05:16:14.3622629Z             {
2026-06-21T05:16:14.3622760Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-21T05:16:14.3622845Z               "line": 122
2026-06-21T05:16:14.3622931Z             },
2026-06-21T05:16:14.3623020Z             {
2026-06-21T05:16:14.3623134Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T05:16:14.3623229Z               "line": 452
2026-06-21T05:16:14.3623321Z             },
2026-06-21T05:16:14.3623406Z             {
2026-06-21T05:16:14.3623515Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T05:16:14.3623606Z               "line": 501
2026-06-21T05:16:14.3623697Z             },
2026-06-21T05:16:14.3623782Z             {
2026-06-21T05:16:14.3623893Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T05:16:14.3623978Z               "line": 517
2026-06-21T05:16:14.3624063Z             },
2026-06-21T05:16:14.3624135Z             {
2026-06-21T05:16:14.3624255Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T05:16:14.3624336Z               "line": 536
2026-06-21T05:16:14.3624426Z             },
2026-06-21T05:16:14.3624503Z             {
2026-06-21T05:16:14.3624598Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3624693Z               "line": 7660
2026-06-21T05:16:14.3624769Z             }
2026-06-21T05:16:14.3624857Z           ]
2026-06-21T05:16:14.3624946Z         }
2026-06-21T05:16:14.3625037Z       }
2026-06-21T05:16:14.3625133Z     },
2026-06-21T05:16:14.3625214Z     {
2026-06-21T05:16:14.3625298Z       "id": "REQ-MSG-6",
2026-06-21T05:16:14.3626836Z       "title": "cross-node Gateway user-msg honored via advertised endpoint_type: a user-msg from a Gateway-typed origin survives the receive_wan funnel as user-msg (vs the fail-closed re-stamp), keyed on the QUIC-handshake-proven origin node (never wire `from`). Trust boundary = subnet membership (operator-ratified 2026-06-13); no defense against an in-subnet member forging the type. Instance.endpoint_type is an additive serde-default field extending REQ-INST-7's data model. Absent/unknown type → re-stamp (N-1 rollout grace)",
2026-06-21T05:16:14.3626931Z       "requiredStages": [
2026-06-21T05:16:14.3627021Z         "doc",
2026-06-21T05:16:14.3627108Z         "impl",
2026-06-21T05:16:14.3627193Z         "unit"
2026-06-21T05:16:14.3627279Z       ],
2026-06-21T05:16:14.3627365Z       "stages": {
2026-06-21T05:16:14.3627447Z         "doc": {
2026-06-21T05:16:14.3627617Z           "complete": true,
2026-06-21T05:16:14.3627705Z           "evidence": [
2026-06-21T05:16:14.3627790Z             {
2026-06-21T05:16:14.3627889Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.3627981Z               "line": 234
2026-06-21T05:16:14.3628062Z             }
2026-06-21T05:16:14.3628147Z           ]
2026-06-21T05:16:14.3628231Z         },
2026-06-21T05:16:14.3628317Z         "impl": {
2026-06-21T05:16:14.3628409Z           "complete": true,
2026-06-21T05:16:14.3628499Z           "evidence": [
2026-06-21T05:16:14.3628584Z             {
2026-06-21T05:16:14.3628709Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.3628870Z               "line": 177
2026-06-21T05:16:14.3629024Z             },
2026-06-21T05:16:14.3629114Z             {
2026-06-21T05:16:14.3629242Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.3629329Z               "line": 428
2026-06-21T05:16:14.3629415Z             },
2026-06-21T05:16:14.3629505Z             {
2026-06-21T05:16:14.3629635Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.3629715Z               "line": 451
2026-06-21T05:16:14.3629796Z             },
2026-06-21T05:16:14.3629876Z             {
2026-06-21T05:16:14.3629987Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-21T05:16:14.3630086Z               "line": 89
2026-06-21T05:16:14.3630163Z             },
2026-06-21T05:16:14.3630249Z             {
2026-06-21T05:16:14.3630369Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3630457Z               "line": 155
2026-06-21T05:16:14.3630538Z             }
2026-06-21T05:16:14.3630624Z           ]
2026-06-21T05:16:14.3630709Z         },
2026-06-21T05:16:14.3630793Z         "int": {
2026-06-21T05:16:14.3630894Z           "complete": false,
2026-06-21T05:16:14.3630980Z           "evidence": []
2026-06-21T05:16:14.3631075Z         },
2026-06-21T05:16:14.3631160Z         "unit": {
2026-06-21T05:16:14.3631261Z           "complete": true,
2026-06-21T05:16:14.3631357Z           "evidence": [
2026-06-21T05:16:14.3631441Z             {
2026-06-21T05:16:14.3631572Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.3631657Z               "line": 1746
2026-06-21T05:16:14.3631747Z             },
2026-06-21T05:16:14.3631823Z             {
2026-06-21T05:16:14.3631934Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-21T05:16:14.3632029Z               "line": 219
2026-06-21T05:16:14.3632109Z             }
2026-06-21T05:16:14.3632196Z           ]
2026-06-21T05:16:14.3632282Z         }
2026-06-21T05:16:14.3632372Z       }
2026-06-21T05:16:14.3632462Z     },
2026-06-21T05:16:14.3632549Z     {
2026-06-21T05:16:14.3632648Z       "id": "REQ-MSG-ENVELOPE",
2026-06-21T05:16:14.3636289Z       "title": "The <EVENT type=\"msg\" from=…>body</EVENT> envelope (spt-proto::event, the ADR-0001 grammar) is the SOLE canonical arriving-message format at EVERY harness arriving-message surface on an AGENT perch — api listen AND api poll/worker-poll, byte-identical (reverses REQ-MSG-4's 'hook drains keep the raw frame by contract'). SCOPE CARVE-OUT: the shell-command relay (api poll <shell-id> --link, cmd_poll_shell) is a distinct internal transport carrying RAW MAC'd stamped frames the shell child consumes verbatim — NOT an arriving-message surface, deliberately EXEMPT from <EVENT> composition (notify_shell_e2e guards this boundary). __REPLY_TO__ — mis-elevated during the clean-room port to a fake ADR-0001 'stable wire format' (spt-msg/wire.rs, lib.rs) — is REMOVED entirely (spool format_row, the spt-msg TCP frame, emit parse_frame); (from, body) carried structurally, <EVENT> composed once at the delivery boundary. No legacy sister-interop (spt-core never required it). Reply-correlation rebinds onto the structural from / <EVENT from=…> attribute (ADR-0009 access-gate + ADR-0012 Psyche/spt-live reply-target). Self-delimiting by construction → finding F-002 (non-self-delimiting multi-message poll) dissolves. ADR-0020.",
2026-06-21T05:16:14.3636518Z       "requiredStages": [
2026-06-21T05:16:14.3636603Z         "doc",
2026-06-21T05:16:14.3636696Z         "impl",
2026-06-21T05:16:14.3636786Z         "unit",
2026-06-21T05:16:14.3639589Z         "int"
2026-06-21T05:16:14.3639703Z       ],
2026-06-21T05:16:14.3639797Z       "stages": {
2026-06-21T05:16:14.3639885Z         "doc": {
2026-06-21T05:16:14.3639984Z           "complete": true,
2026-06-21T05:16:14.3640074Z           "evidence": [
2026-06-21T05:16:14.3640156Z             {
2026-06-21T05:16:14.3640394Z               "path": "docs/adr/0020-event-envelope-sole-arriving-format-reply-to-removed.md",
2026-06-21T05:16:14.3640646Z               "line": 47
2026-06-21T05:16:14.3640728Z             }
2026-06-21T05:16:14.3640804Z           ]
2026-06-21T05:16:14.3640891Z         },
2026-06-21T05:16:14.3640975Z         "impl": {
2026-06-21T05:16:14.3641060Z           "complete": true,
2026-06-21T05:16:14.3641156Z           "evidence": [
2026-06-21T05:16:14.3641241Z             {
2026-06-21T05:16:14.3641358Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-21T05:16:14.3641449Z               "line": 20
2026-06-21T05:16:14.3641536Z             },
2026-06-21T05:16:14.3641616Z             {
2026-06-21T05:16:14.3641720Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-21T05:16:14.3641802Z               "line": 33
2026-06-21T05:16:14.3641888Z             },
2026-06-21T05:16:14.3641974Z             {
2026-06-21T05:16:14.3642083Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-21T05:16:14.3642170Z               "line": 47
2026-06-21T05:16:14.3642246Z             },
2026-06-21T05:16:14.3642326Z             {
2026-06-21T05:16:14.3642432Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-21T05:16:14.3642523Z               "line": 58
2026-06-21T05:16:14.3642608Z             },
2026-06-21T05:16:14.3642694Z             {
2026-06-21T05:16:14.3642799Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-21T05:16:14.3642889Z               "line": 14
2026-06-21T05:16:14.3642974Z             },
2026-06-21T05:16:14.3643062Z             {
2026-06-21T05:16:14.3643166Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-21T05:16:14.3643257Z               "line": 27
2026-06-21T05:16:14.3643342Z             },
2026-06-21T05:16:14.3643424Z             {
2026-06-21T05:16:14.3643532Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-21T05:16:14.3643614Z               "line": 40
2026-06-21T05:16:14.3643701Z             },
2026-06-21T05:16:14.3643782Z             {
2026-06-21T05:16:14.3643899Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T05:16:14.3643989Z               "line": 92
2026-06-21T05:16:14.3644075Z             },
2026-06-21T05:16:14.3644150Z             {
2026-06-21T05:16:14.3644268Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T05:16:14.3644354Z               "line": 143
2026-06-21T05:16:14.3644436Z             },
2026-06-21T05:16:14.3644521Z             {
2026-06-21T05:16:14.3644640Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T05:16:14.3644723Z               "line": 216
2026-06-21T05:16:14.3644804Z             },
2026-06-21T05:16:14.3644893Z             {
2026-06-21T05:16:14.3645004Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.3645093Z               "line": 533
2026-06-21T05:16:14.3645179Z             },
2026-06-21T05:16:14.3645265Z             {
2026-06-21T05:16:14.3645361Z               "path": "crates/spt/src/api/worker.rs",
2026-06-21T05:16:14.3645446Z               "line": 78
2026-06-21T05:16:14.3645532Z             },
2026-06-21T05:16:14.3645614Z             {
2026-06-21T05:16:14.3645723Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3645813Z               "line": 3111
2026-06-21T05:16:14.3645899Z             }
2026-06-21T05:16:14.3645986Z           ]
2026-06-21T05:16:14.3646070Z         },
2026-06-21T05:16:14.3646152Z         "int": {
2026-06-21T05:16:14.3646253Z           "complete": true,
2026-06-21T05:16:14.3646461Z           "evidence": [
2026-06-21T05:16:14.3646546Z             {
2026-06-21T05:16:14.3646684Z               "path": "crates/spt/tests/poll_envelope_e2e.rs",
2026-06-21T05:16:14.3646773Z               "line": 15
2026-06-21T05:16:14.3646858Z             }
2026-06-21T05:16:14.3646940Z           ]
2026-06-21T05:16:14.3647027Z         },
2026-06-21T05:16:14.3647116Z         "unit": {
2026-06-21T05:16:14.3647207Z           "complete": true,
2026-06-21T05:16:14.3647298Z           "evidence": [
2026-06-21T05:16:14.3647374Z             {
2026-06-21T05:16:14.3647483Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-21T05:16:14.3647651Z               "line": 102
2026-06-21T05:16:14.3647736Z             },
2026-06-21T05:16:14.3647822Z             {
2026-06-21T05:16:14.3647919Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-21T05:16:14.3648008Z               "line": 137
2026-06-21T05:16:14.3648089Z             },
2026-06-21T05:16:14.3648171Z             {
2026-06-21T05:16:14.3648280Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-21T05:16:14.3648375Z               "line": 98
2026-06-21T05:16:14.3648466Z             },
2026-06-21T05:16:14.3648548Z             {
2026-06-21T05:16:14.3648656Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-21T05:16:14.3648733Z               "line": 106
2026-06-21T05:16:14.3648815Z             },
2026-06-21T05:16:14.3648896Z             {
2026-06-21T05:16:14.3649072Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-21T05:16:14.3649164Z               "line": 113
2026-06-21T05:16:14.3649243Z             },
2026-06-21T05:16:14.3649323Z             {
2026-06-21T05:16:14.3649428Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-21T05:16:14.3649519Z               "line": 122
2026-06-21T05:16:14.3649600Z             }
2026-06-21T05:16:14.3649681Z           ]
2026-06-21T05:16:14.3649762Z         }
2026-06-21T05:16:14.3649848Z       }
2026-06-21T05:16:14.3649925Z     },
2026-06-21T05:16:14.3650014Z     {
2026-06-21T05:16:14.3650139Z       "id": "REQ-MSG-IDLE-TRANSLATION-BINARY",
2026-06-21T05:16:14.3654982Z       "title": "spt-hosted idle message delivery via an adapter TRANSLATION BINARY (ADR-0022). New opt-in manifest section `[message-idle-translation-binary]` = a TABLE carrying a `path` scalar (doyle OPT-B ruling: modeled as a table, not a bare top-level scalar, so a preceding section cannot silently absorb it + N+1 extensible; spt-core does NOT deny_unknown_fields, so a future key degrades gracefully); spt-core LIFECYCLE-manages it (spawn when the endpoint comes up, terminate when it goes down). The binary is a PURE stdin→stdout filter; spt-core owns EVERY PTY write. stdin (JSON-lines): `{type:\"init\",endpoint_id,node}` first · `{type:\"event\",envelope:\"<EVENT…>\"}` per inbound message (ADR-0020 envelope) · `{type:\"input\"}` content-free ping on each operator keystroke (binary tracks user-idle for its own idle-gated buffering; PTY input content NOT duplicated). stdout (JSON-lines): keystroke-commands `{key:…}`/`{delay_ms:…}`/`{text:…}` (extensible). spt-core applies the emitted sequence to the broker PTY ATOMICALLY (the W1 coordination — REQ-HAZARD-INJECT-CONTROL-COEXIST). The daemon poll feed is the ONE idle substrate for both topologies (Q1=A): harness-hosted consumer = the Monitor child, spt-hosted consumer = this binary; spt-core PREFERS a perch's poll listener if one exists (so spt-hosted can run a listener AND keep `spt rc`). Idle-only; busy/mid-turn = adapter hook-injection. Closes the current grounding gap: `api bind` registers no listener port → a listener-less spt-hosted perch SPOOLS inbound (only spooling+adapter-poll works today) → this delivers real inbound into the PTY. The v0.11.0 raw inject is the degenerate `{text:payload}{key:enter}` case. (v0.13.0)",
2026-06-21T05:16:14.3655124Z       "requiredStages": [
2026-06-21T05:16:14.3655200Z         "doc",
2026-06-21T05:16:14.3655283Z         "impl",
2026-06-21T05:16:14.3655373Z         "unit",
2026-06-21T05:16:14.3655457Z         "int"
2026-06-21T05:16:14.3655658Z       ],
2026-06-21T05:16:14.3655744Z       "stages": {
2026-06-21T05:16:14.3655830Z         "doc": {
2026-06-21T05:16:14.3655917Z           "complete": true,
2026-06-21T05:16:14.3656011Z           "evidence": [
2026-06-21T05:16:14.3656097Z             {
2026-06-21T05:16:14.3656241Z               "path": "docs-site/src/harness-contract/manifest.md",
2026-06-21T05:16:14.3656335Z               "line": 277
2026-06-21T05:16:14.3656416Z             },
2026-06-21T05:16:14.3656504Z             {
2026-06-21T05:16:14.3656603Z               "path": "docs/MANIFEST.md",
2026-06-21T05:16:14.3656693Z               "line": 198
2026-06-21T05:16:14.3656779Z             }
2026-06-21T05:16:14.3656955Z           ]
2026-06-21T05:16:14.3657045Z         },
2026-06-21T05:16:14.3657126Z         "impl": {
2026-06-21T05:16:14.3657221Z           "complete": true,
2026-06-21T05:16:14.3657300Z           "evidence": [
2026-06-21T05:16:14.3657390Z             {
2026-06-21T05:16:14.3657515Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.3657606Z               "line": 977
2026-06-21T05:16:14.3657695Z             },
2026-06-21T05:16:14.3657777Z             {
2026-06-21T05:16:14.3657906Z               "path": "crates/spt-daemon/src/translation.rs",
2026-06-21T05:16:14.3657981Z               "line": 23
2026-06-21T05:16:14.3658072Z             },
2026-06-21T05:16:14.3658159Z             {
2026-06-21T05:16:14.3658277Z               "path": "crates/spt-daemon/src/translation.rs",
2026-06-21T05:16:14.3658358Z               "line": 91
2026-06-21T05:16:14.3658440Z             },
2026-06-21T05:16:14.3658516Z             {
2026-06-21T05:16:14.3658625Z               "path": "crates/spt-daemon/src/translation.rs",
2026-06-21T05:16:14.3658721Z               "line": 239
2026-06-21T05:16:14.3658812Z             },
2026-06-21T05:16:14.3658888Z             {
2026-06-21T05:16:14.3659094Z               "path": "crates/spt-daemon/src/translation.rs",
2026-06-21T05:16:14.3659183Z               "line": 287
2026-06-21T05:16:14.3659269Z             },
2026-06-21T05:16:14.3659351Z             {
2026-06-21T05:16:14.3659479Z               "path": "crates/spt-daemon/src/translation.rs",
2026-06-21T05:16:14.3659565Z               "line": 311
2026-06-21T05:16:14.3659646Z             },
2026-06-21T05:16:14.3659733Z             {
2026-06-21T05:16:14.3659836Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.3659922Z               "line": 60
2026-06-21T05:16:14.3660007Z             },
2026-06-21T05:16:14.3660084Z             {
2026-06-21T05:16:14.3660208Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.3660288Z               "line": 889
2026-06-21T05:16:14.3660375Z             }
2026-06-21T05:16:14.3660461Z           ]
2026-06-21T05:16:14.3660546Z         },
2026-06-21T05:16:14.3660627Z         "int": {
2026-06-21T05:16:14.3660714Z           "complete": true,
2026-06-21T05:16:14.3660804Z           "evidence": [
2026-06-21T05:16:14.3660884Z             {
2026-06-21T05:16:14.3661033Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
2026-06-21T05:16:14.3661118Z               "line": 1086
2026-06-21T05:16:14.3661189Z             },
2026-06-21T05:16:14.3661271Z             {
2026-06-21T05:16:14.3661400Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
2026-06-21T05:16:14.3661486Z               "line": 1191
2026-06-21T05:16:14.3661561Z             },
2026-06-21T05:16:14.3661644Z             {
2026-06-21T05:16:14.3661776Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
2026-06-21T05:16:14.3661862Z               "line": 1259
2026-06-21T05:16:14.3661949Z             },
2026-06-21T05:16:14.3662034Z             {
2026-06-21T05:16:14.3662171Z               "path": "crates/spt-daemon/tests/inject_control_wedge.rs",
2026-06-21T05:16:14.3662257Z               "line": 1352
2026-06-21T05:16:14.3662342Z             }
2026-06-21T05:16:14.3662426Z           ]
2026-06-21T05:16:14.3662511Z         },
2026-06-21T05:16:14.3662685Z         "unit": {
2026-06-21T05:16:14.3662775Z           "complete": true,
2026-06-21T05:16:14.3662860Z           "evidence": [
2026-06-21T05:16:14.3662946Z             {
2026-06-21T05:16:14.3663075Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T05:16:14.3663165Z               "line": 270
2026-06-21T05:16:14.3663247Z             },
2026-06-21T05:16:14.3663333Z             {
2026-06-21T05:16:14.3663447Z               "path": "crates/spt-daemon/src/translation.rs",
2026-06-21T05:16:14.3663528Z               "line": 350
2026-06-21T05:16:14.3663609Z             },
2026-06-21T05:16:14.3663695Z             {
2026-06-21T05:16:14.3663814Z               "path": "crates/spt-daemon/src/translation.rs",
2026-06-21T05:16:14.3663990Z               "line": 381
2026-06-21T05:16:14.3664067Z             },
2026-06-21T05:16:14.3664143Z             {
2026-06-21T05:16:14.3664253Z               "path": "crates/spt-daemon/src/translation.rs",
2026-06-21T05:16:14.3664338Z               "line": 411
2026-06-21T05:16:14.3664428Z             },
2026-06-21T05:16:14.3664516Z             {
2026-06-21T05:16:14.3664643Z               "path": "crates/spt-daemon/src/translation.rs",
2026-06-21T05:16:14.3664725Z               "line": 440
2026-06-21T05:16:14.3664811Z             },
2026-06-21T05:16:14.3664897Z             {
2026-06-21T05:16:14.3665010Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.3665095Z               "line": 1181
2026-06-21T05:16:14.3665177Z             }
2026-06-21T05:16:14.3665261Z           ]
2026-06-21T05:16:14.3665350Z         }
2026-06-21T05:16:14.3665427Z       }
2026-06-21T05:16:14.3665508Z     },
2026-06-21T05:16:14.3665595Z     {
2026-06-21T05:16:14.3665684Z       "id": "REQ-NET-1",
2026-06-21T05:16:14.3665862Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-21T05:16:14.3665956Z       "requiredStages": [
2026-06-21T05:16:14.3666037Z         "impl",
2026-06-21T05:16:14.3666124Z         "unit",
2026-06-21T05:16:14.3666219Z         "int"
2026-06-21T05:16:14.3666299Z       ],
2026-06-21T05:16:14.3666385Z       "stages": {
2026-06-21T05:16:14.3666472Z         "doc": {
2026-06-21T05:16:14.3666557Z           "complete": false,
2026-06-21T05:16:14.3666652Z           "evidence": []
2026-06-21T05:16:14.3666739Z         },
2026-06-21T05:16:14.3666830Z         "impl": {
2026-06-21T05:16:14.3666919Z           "complete": true,
2026-06-21T05:16:14.3667010Z           "evidence": [
2026-06-21T05:16:14.3667092Z             {
2026-06-21T05:16:14.3667205Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-21T05:16:14.3667296Z               "line": 54
2026-06-21T05:16:14.3667379Z             },
2026-06-21T05:16:14.3667469Z             {
2026-06-21T05:16:14.3667581Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-21T05:16:14.3667661Z               "line": 594
2026-06-21T05:16:14.3667743Z             },
2026-06-21T05:16:14.3667828Z             {
2026-06-21T05:16:14.3667946Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-21T05:16:14.3668037Z               "line": 130
2026-06-21T05:16:14.3668118Z             },
2026-06-21T05:16:14.3668199Z             {
2026-06-21T05:16:14.3668327Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T05:16:14.3668414Z               "line": 97
2026-06-21T05:16:14.3668495Z             },
2026-06-21T05:16:14.3668584Z             {
2026-06-21T05:16:14.3668700Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T05:16:14.3668785Z               "line": 159
2026-06-21T05:16:14.3668870Z             },
2026-06-21T05:16:14.3668991Z             {
2026-06-21T05:16:14.3669119Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T05:16:14.3669209Z               "line": 175
2026-06-21T05:16:14.3669296Z             },
2026-06-21T05:16:14.3669377Z             {
2026-06-21T05:16:14.3669496Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T05:16:14.3669581Z               "line": 190
2026-06-21T05:16:14.3669781Z             },
2026-06-21T05:16:14.3669863Z             {
2026-06-21T05:16:14.3669974Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T05:16:14.3670063Z               "line": 271
2026-06-21T05:16:14.3670139Z             },
2026-06-21T05:16:14.3670216Z             {
2026-06-21T05:16:14.3670332Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T05:16:14.3670420Z               "line": 306
2026-06-21T05:16:14.3670505Z             },
2026-06-21T05:16:14.3670586Z             {
2026-06-21T05:16:14.3670707Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T05:16:14.3670791Z               "line": 312
2026-06-21T05:16:14.3670973Z             },
2026-06-21T05:16:14.3671050Z             {
2026-06-21T05:16:14.3671163Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T05:16:14.3671255Z               "line": 318
2026-06-21T05:16:14.3671331Z             },
2026-06-21T05:16:14.3671402Z             {
2026-06-21T05:16:14.3671517Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T05:16:14.3671612Z               "line": 334
2026-06-21T05:16:14.3671698Z             },
2026-06-21T05:16:14.3671783Z             {
2026-06-21T05:16:14.3671894Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T05:16:14.3671969Z               "line": 354
2026-06-21T05:16:14.3672050Z             },
2026-06-21T05:16:14.3672131Z             {
2026-06-21T05:16:14.3672252Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-21T05:16:14.3672336Z               "line": 35
2026-06-21T05:16:14.3672427Z             },
2026-06-21T05:16:14.3672504Z             {
2026-06-21T05:16:14.3672622Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-21T05:16:14.3672703Z               "line": 85
2026-06-21T05:16:14.3672783Z             },
2026-06-21T05:16:14.3672870Z             {
2026-06-21T05:16:14.3672982Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T05:16:14.3673067Z               "line": 138
2026-06-21T05:16:14.3673148Z             },
2026-06-21T05:16:14.3673235Z             {
2026-06-21T05:16:14.3673344Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3673430Z               "line": 2953
2026-06-21T05:16:14.3673516Z             },
2026-06-21T05:16:14.3673597Z             {
2026-06-21T05:16:14.3673701Z               "path": "crates/spt/src/wansend.rs",
2026-06-21T05:16:14.3673788Z               "line": 17
2026-06-21T05:16:14.3673869Z             }
2026-06-21T05:16:14.3673945Z           ]
2026-06-21T05:16:14.3674021Z         },
2026-06-21T05:16:14.3674103Z         "int": {
2026-06-21T05:16:14.3674188Z           "complete": true,
2026-06-21T05:16:14.3674278Z           "evidence": [
2026-06-21T05:16:14.3674359Z             {
2026-06-21T05:16:14.3674484Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-21T05:16:14.3674574Z               "line": 341
2026-06-21T05:16:14.3674646Z             },
2026-06-21T05:16:14.3674727Z             {
2026-06-21T05:16:14.3674851Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.3674937Z               "line": 675
2026-06-21T05:16:14.3675023Z             },
2026-06-21T05:16:14.3675100Z             {
2026-06-21T05:16:14.3675208Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.3675295Z               "line": 973
2026-06-21T05:16:14.3675376Z             }
2026-06-21T05:16:14.3675457Z           ]
2026-06-21T05:16:14.3675537Z         },
2026-06-21T05:16:14.3675626Z         "unit": {
2026-06-21T05:16:14.3675718Z           "complete": true,
2026-06-21T05:16:14.3675812Z           "evidence": [
2026-06-21T05:16:14.3675882Z             {
2026-06-21T05:16:14.3676011Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-21T05:16:14.3676102Z               "line": 651
2026-06-21T05:16:14.3676183Z             },
2026-06-21T05:16:14.3676268Z             {
2026-06-21T05:16:14.3676379Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-21T05:16:14.3676459Z               "line": 686
2026-06-21T05:16:14.3676626Z             },
2026-06-21T05:16:14.3676708Z             {
2026-06-21T05:16:14.3676831Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-21T05:16:14.3676916Z               "line": 940
2026-06-21T05:16:14.3676999Z             },
2026-06-21T05:16:14.3677084Z             {
2026-06-21T05:16:14.3677194Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-21T05:16:14.3677279Z               "line": 201
2026-06-21T05:16:14.3677361Z             },
2026-06-21T05:16:14.3677446Z             {
2026-06-21T05:16:14.3677551Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T05:16:14.3677714Z               "line": 442
2026-06-21T05:16:14.3677798Z             },
2026-06-21T05:16:14.3677885Z             {
2026-06-21T05:16:14.3678000Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T05:16:14.3678099Z               "line": 456
2026-06-21T05:16:14.3678175Z             },
2026-06-21T05:16:14.3678256Z             {
2026-06-21T05:16:14.3678383Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T05:16:14.3678463Z               "line": 475
2026-06-21T05:16:14.3678544Z             },
2026-06-21T05:16:14.3678625Z             {
2026-06-21T05:16:14.3678750Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-21T05:16:14.3678844Z               "line": 120
2026-06-21T05:16:14.3678926Z             },
2026-06-21T05:16:14.3679097Z             {
2026-06-21T05:16:14.3679202Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-21T05:16:14.3679293Z               "line": 163
2026-06-21T05:16:14.3679388Z             },
2026-06-21T05:16:14.3679478Z             {
2026-06-21T05:16:14.3679594Z               "path": "crates/spt-store/src/spool.rs",
2026-06-21T05:16:14.3679679Z               "line": 530
2026-06-21T05:16:14.3679764Z             },
2026-06-21T05:16:14.3679846Z             {
2026-06-21T05:16:14.3679956Z               "path": "crates/spt/src/wansend.rs",
2026-06-21T05:16:14.3680056Z               "line": 616
2026-06-21T05:16:14.3680137Z             },
2026-06-21T05:16:14.3680219Z             {
2026-06-21T05:16:14.3680322Z               "path": "crates/spt/src/wansend.rs",
2026-06-21T05:16:14.3680408Z               "line": 1006
2026-06-21T05:16:14.3680486Z             }
2026-06-21T05:16:14.3680567Z           ]
2026-06-21T05:16:14.3680651Z         }
2026-06-21T05:16:14.3680737Z       }
2026-06-21T05:16:14.3680825Z     },
2026-06-21T05:16:14.3680906Z     {
2026-06-21T05:16:14.3680994Z       "id": "REQ-NET-2",
2026-06-21T05:16:14.3681171Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-21T05:16:14.3681267Z       "requiredStages": [
2026-06-21T05:16:14.3681361Z         "impl"
2026-06-21T05:16:14.3681447Z       ],
2026-06-21T05:16:14.3681529Z       "stages": {
2026-06-21T05:16:14.3681615Z         "doc": {
2026-06-21T05:16:14.3681709Z           "complete": false,
2026-06-21T05:16:14.3681796Z           "evidence": []
2026-06-21T05:16:14.3681881Z         },
2026-06-21T05:16:14.3681976Z         "impl": {
2026-06-21T05:16:14.3682057Z           "complete": true,
2026-06-21T05:16:14.3682149Z           "evidence": [
2026-06-21T05:16:14.3682229Z             {
2026-06-21T05:16:14.3682348Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-21T05:16:14.3682425Z               "line": 57
2026-06-21T05:16:14.3682506Z             },
2026-06-21T05:16:14.3682597Z             {
2026-06-21T05:16:14.3682711Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T05:16:14.3682793Z               "line": 71
2026-06-21T05:16:14.3682882Z             },
2026-06-21T05:16:14.3682968Z             {
2026-06-21T05:16:14.3683084Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T05:16:14.3683183Z               "line": 81
2026-06-21T05:16:14.3683263Z             },
2026-06-21T05:16:14.3683334Z             {
2026-06-21T05:16:14.3683453Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T05:16:14.3683542Z               "line": 159
2026-06-21T05:16:14.3683728Z             },
2026-06-21T05:16:14.3683815Z             {
2026-06-21T05:16:14.3683942Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T05:16:14.3684023Z               "line": 175
2026-06-21T05:16:14.3684105Z             },
2026-06-21T05:16:14.3684185Z             {
2026-06-21T05:16:14.3684294Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-21T05:16:14.3684387Z               "line": 190
2026-06-21T05:16:14.3684472Z             }
2026-06-21T05:16:14.3684562Z           ]
2026-06-21T05:16:14.3684648Z         },
2026-06-21T05:16:14.3684730Z         "int": {
2026-06-21T05:16:14.3684824Z           "complete": false,
2026-06-21T05:16:14.3685011Z           "evidence": []
2026-06-21T05:16:14.3685096Z         },
2026-06-21T05:16:14.3685172Z         "unit": {
2026-06-21T05:16:14.3685273Z           "complete": true,
2026-06-21T05:16:14.3685359Z           "evidence": [
2026-06-21T05:16:14.3685439Z             {
2026-06-21T05:16:14.3685563Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-21T05:16:14.3685651Z               "line": 402
2026-06-21T05:16:14.3685740Z             }
2026-06-21T05:16:14.3685821Z           ]
2026-06-21T05:16:14.3685903Z         }
2026-06-21T05:16:14.3685994Z       }
2026-06-21T05:16:14.3686078Z     },
2026-06-21T05:16:14.3686168Z     {
2026-06-21T05:16:14.3686258Z       "id": "REQ-NET-3",
2026-06-21T05:16:14.3686438Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-21T05:16:14.3686532Z       "requiredStages": [
2026-06-21T05:16:14.3686624Z         "impl",
2026-06-21T05:16:14.3686710Z         "unit"
2026-06-21T05:16:14.3686790Z       ],
2026-06-21T05:16:14.3686890Z       "stages": {
2026-06-21T05:16:14.3686972Z         "doc": {
2026-06-21T05:16:14.3687067Z           "complete": false,
2026-06-21T05:16:14.3687157Z           "evidence": []
2026-06-21T05:16:14.3687249Z         },
2026-06-21T05:16:14.3687339Z         "impl": {
2026-06-21T05:16:14.3687419Z           "complete": true,
2026-06-21T05:16:14.3687520Z           "evidence": [
2026-06-21T05:16:14.3687592Z             {
2026-06-21T05:16:14.3687706Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T05:16:14.3687796Z               "line": 39
2026-06-21T05:16:14.3687879Z             },
2026-06-21T05:16:14.3687964Z             {
2026-06-21T05:16:14.3688073Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T05:16:14.3688159Z               "line": 182
2026-06-21T05:16:14.3688241Z             },
2026-06-21T05:16:14.3688330Z             {
2026-06-21T05:16:14.3688440Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-21T05:16:14.3688528Z               "line": 333
2026-06-21T05:16:14.3688622Z             },
2026-06-21T05:16:14.3688706Z             {
2026-06-21T05:16:14.3688816Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-21T05:16:14.3688897Z               "line": 36
2026-06-21T05:16:14.3689099Z             },
2026-06-21T05:16:14.3689181Z             {
2026-06-21T05:16:14.3689310Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T05:16:14.3689404Z               "line": 158
2026-06-21T05:16:14.3689491Z             },
2026-06-21T05:16:14.3689577Z             {
2026-06-21T05:16:14.3689695Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T05:16:14.3689787Z               "line": 238
2026-06-21T05:16:14.3689868Z             },
2026-06-21T05:16:14.3689949Z             {
2026-06-21T05:16:14.3690068Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T05:16:14.3690154Z               "line": 259
2026-06-21T05:16:14.3690239Z             },
2026-06-21T05:16:14.3690325Z             {
2026-06-21T05:16:14.3690450Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T05:16:14.3690535Z               "line": 317
2026-06-21T05:16:14.3690616Z             },
2026-06-21T05:16:14.3690697Z             {
2026-06-21T05:16:14.3690826Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T05:16:14.3691026Z               "line": 336
2026-06-21T05:16:14.3691113Z             },
2026-06-21T05:16:14.3691193Z             {
2026-06-21T05:16:14.3691317Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T05:16:14.3691404Z               "line": 374
2026-06-21T05:16:14.3691489Z             },
2026-06-21T05:16:14.3691573Z             {
2026-06-21T05:16:14.3691702Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T05:16:14.3691788Z               "line": 419
2026-06-21T05:16:14.3691874Z             },
2026-06-21T05:16:14.3691959Z             {
2026-06-21T05:16:14.3692085Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T05:16:14.3692283Z               "line": 432
2026-06-21T05:16:14.3692361Z             },
2026-06-21T05:16:14.3692451Z             {
2026-06-21T05:16:14.3692569Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-21T05:16:14.3692656Z               "line": 29
2026-06-21T05:16:14.3692737Z             },
2026-06-21T05:16:14.3692828Z             {
2026-06-21T05:16:14.3692951Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-21T05:16:14.3693034Z               "line": 72
2026-06-21T05:16:14.3693113Z             },
2026-06-21T05:16:14.3693189Z             {
2026-06-21T05:16:14.3693301Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-21T05:16:14.3693396Z               "line": 123
2026-06-21T05:16:14.3693470Z             }
2026-06-21T05:16:14.3693562Z           ]
2026-06-21T05:16:14.3693649Z         },
2026-06-21T05:16:14.3693738Z         "int": {
2026-06-21T05:16:14.3693833Z           "complete": false,
2026-06-21T05:16:14.3693913Z           "evidence": []
2026-06-21T05:16:14.3694004Z         },
2026-06-21T05:16:14.3694079Z         "unit": {
2026-06-21T05:16:14.3694178Z           "complete": true,
2026-06-21T05:16:14.3694264Z           "evidence": [
2026-06-21T05:16:14.3694346Z             {
2026-06-21T05:16:14.3694464Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-21T05:16:14.3694564Z               "line": 223
2026-06-21T05:16:14.3694651Z             },
2026-06-21T05:16:14.3694732Z             {
2026-06-21T05:16:14.3694859Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-21T05:16:14.3694942Z               "line": 351
2026-06-21T05:16:14.3695022Z             },
2026-06-21T05:16:14.3695107Z             {
2026-06-21T05:16:14.3695214Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-21T05:16:14.3695299Z               "line": 504
2026-06-21T05:16:14.3695385Z             },
2026-06-21T05:16:14.3695470Z             {
2026-06-21T05:16:14.3695586Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-21T05:16:14.3695675Z               "line": 93
2026-06-21T05:16:14.3695761Z             },
2026-06-21T05:16:14.3695853Z             {
2026-06-21T05:16:14.3695966Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-21T05:16:14.3696052Z               "line": 142
2026-06-21T05:16:14.3696143Z             },
2026-06-21T05:16:14.3696225Z             {
2026-06-21T05:16:14.3696352Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-21T05:16:14.3696439Z               "line": 315
2026-06-21T05:16:14.3696530Z             },
2026-06-21T05:16:14.3696619Z             {
2026-06-21T05:16:14.3696733Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-21T05:16:14.3696823Z               "line": 355
2026-06-21T05:16:14.3696909Z             },
2026-06-21T05:16:14.3696988Z             {
2026-06-21T05:16:14.3697097Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-21T05:16:14.3697184Z               "line": 494
2026-06-21T05:16:14.3697275Z             }
2026-06-21T05:16:14.3697355Z           ]
2026-06-21T05:16:14.3697451Z         }
2026-06-21T05:16:14.3697532Z       }
2026-06-21T05:16:14.3697618Z     },
2026-06-21T05:16:14.3697703Z     {
2026-06-21T05:16:14.3697805Z       "id": "REQ-NODE-IDENTITY",
2026-06-21T05:16:14.3698041Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-21T05:16:14.3698228Z       "requiredStages": [
2026-06-21T05:16:14.3698314Z         "impl",
2026-06-21T05:16:14.3698400Z         "unit"
2026-06-21T05:16:14.3698481Z       ],
2026-06-21T05:16:14.3698562Z       "stages": {
2026-06-21T05:16:14.3698652Z         "doc": {
2026-06-21T05:16:14.3698744Z           "complete": false,
2026-06-21T05:16:14.3698834Z           "evidence": []
2026-06-21T05:16:14.3698914Z         },
2026-06-21T05:16:14.3699068Z         "impl": {
2026-06-21T05:16:14.3699158Z           "complete": true,
2026-06-21T05:16:14.3699243Z           "evidence": [
2026-06-21T05:16:14.3699328Z             {
2026-06-21T05:16:14.3699452Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-21T05:16:14.3699640Z               "line": 60
2026-06-21T05:16:14.3699736Z             },
2026-06-21T05:16:14.3699828Z             {
2026-06-21T05:16:14.3699940Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-21T05:16:14.3700027Z               "line": 68
2026-06-21T05:16:14.3700114Z             },
2026-06-21T05:16:14.3700199Z             {
2026-06-21T05:16:14.3700303Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-21T05:16:14.3700399Z               "line": 86
2026-06-21T05:16:14.3700480Z             },
2026-06-21T05:16:14.3700566Z             {
2026-06-21T05:16:14.3700677Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-21T05:16:14.3700757Z               "line": 120
2026-06-21T05:16:14.3700843Z             },
2026-06-21T05:16:14.3700928Z             {
2026-06-21T05:16:14.3701048Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-21T05:16:14.3701138Z               "line": 127
2026-06-21T05:16:14.3701228Z             },
2026-06-21T05:16:14.3701311Z             {
2026-06-21T05:16:14.3701419Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-21T05:16:14.3701501Z               "line": 143
2026-06-21T05:16:14.3701582Z             },
2026-06-21T05:16:14.3701663Z             {
2026-06-21T05:16:14.3701772Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-21T05:16:14.3701862Z               "line": 16
2026-06-21T05:16:14.3701950Z             }
2026-06-21T05:16:14.3702026Z           ]
2026-06-21T05:16:14.3702110Z         },
2026-06-21T05:16:14.3702195Z         "int": {
2026-06-21T05:16:14.3702291Z           "complete": false,
2026-06-21T05:16:14.3702373Z           "evidence": []
2026-06-21T05:16:14.3702453Z         },
2026-06-21T05:16:14.3702543Z         "unit": {
2026-06-21T05:16:14.3702630Z           "complete": true,
2026-06-21T05:16:14.3702721Z           "evidence": [
2026-06-21T05:16:14.3702800Z             {
2026-06-21T05:16:14.3702912Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-21T05:16:14.3703002Z               "line": 199
2026-06-21T05:16:14.3703087Z             },
2026-06-21T05:16:14.3703178Z             {
2026-06-21T05:16:14.3703288Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-21T05:16:14.3703378Z               "line": 218
2026-06-21T05:16:14.3703463Z             },
2026-06-21T05:16:14.3703555Z             {
2026-06-21T05:16:14.3703664Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-21T05:16:14.3703759Z               "line": 234
2026-06-21T05:16:14.3703851Z             },
2026-06-21T05:16:14.3703937Z             {
2026-06-21T05:16:14.3704055Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-21T05:16:14.3704141Z               "line": 256
2026-06-21T05:16:14.3704223Z             },
2026-06-21T05:16:14.3704308Z             {
2026-06-21T05:16:14.3704426Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-21T05:16:14.3704512Z               "line": 124
2026-06-21T05:16:14.3704593Z             },
2026-06-21T05:16:14.3704686Z             {
2026-06-21T05:16:14.3704780Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-21T05:16:14.3704867Z               "line": 140
2026-06-21T05:16:14.3704945Z             },
2026-06-21T05:16:14.3705024Z             {
2026-06-21T05:16:14.3705139Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-21T05:16:14.3705325Z               "line": 155
2026-06-21T05:16:14.3705410Z             }
2026-06-21T05:16:14.3705493Z           ]
2026-06-21T05:16:14.3705582Z         }
2026-06-21T05:16:14.3705658Z       }
2026-06-21T05:16:14.3705749Z     },
2026-06-21T05:16:14.3705836Z     {
2026-06-21T05:16:14.3705926Z       "id": "REQ-NOTIF-1",
2026-06-21T05:16:14.3706283Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-21T05:16:14.3706378Z       "requiredStages": [
2026-06-21T05:16:14.3706470Z         "impl",
2026-06-21T05:16:14.3706559Z         "unit",
2026-06-21T05:16:14.3709270Z         "int"
2026-06-21T05:16:14.3709375Z       ],
2026-06-21T05:16:14.3709469Z       "stages": {
2026-06-21T05:16:14.3709546Z         "doc": {
2026-06-21T05:16:14.3709643Z           "complete": false,
2026-06-21T05:16:14.3709742Z           "evidence": []
2026-06-21T05:16:14.3709822Z         },
2026-06-21T05:16:14.3709922Z         "impl": {
2026-06-21T05:16:14.3710017Z           "complete": true,
2026-06-21T05:16:14.3710101Z           "evidence": [
2026-06-21T05:16:14.3710186Z             {
2026-06-21T05:16:14.3710320Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-21T05:16:14.3710406Z               "line": 514
2026-06-21T05:16:14.3710487Z             },
2026-06-21T05:16:14.3710568Z             {
2026-06-21T05:16:14.3710692Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T05:16:14.3710777Z               "line": 30
2026-06-21T05:16:14.3710863Z             },
2026-06-21T05:16:14.3710945Z             {
2026-06-21T05:16:14.3711064Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T05:16:14.3711158Z               "line": 69
2026-06-21T05:16:14.3711241Z             },
2026-06-21T05:16:14.3711331Z             {
2026-06-21T05:16:14.3711431Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T05:16:14.3711512Z               "line": 93
2026-06-21T05:16:14.3711594Z             },
2026-06-21T05:16:14.3711674Z             {
2026-06-21T05:16:14.3711788Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T05:16:14.3711871Z               "line": 107
2026-06-21T05:16:14.3711956Z             },
2026-06-21T05:16:14.3712036Z             {
2026-06-21T05:16:14.3712147Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T05:16:14.3712228Z               "line": 142
2026-06-21T05:16:14.3712317Z             },
2026-06-21T05:16:14.3712399Z             {
2026-06-21T05:16:14.3712505Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T05:16:14.3712586Z               "line": 187
2026-06-21T05:16:14.3712675Z             },
2026-06-21T05:16:14.3712765Z             {
2026-06-21T05:16:14.3712870Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T05:16:14.3712961Z               "line": 258
2026-06-21T05:16:14.3713041Z             },
2026-06-21T05:16:14.3713127Z             {
2026-06-21T05:16:14.3713233Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T05:16:14.3713328Z               "line": 372
2026-06-21T05:16:14.3713413Z             },
2026-06-21T05:16:14.3713495Z             {
2026-06-21T05:16:14.3713610Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T05:16:14.3713694Z               "line": 479
2026-06-21T05:16:14.3713776Z             },
2026-06-21T05:16:14.3713857Z             {
2026-06-21T05:16:14.3713981Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-21T05:16:14.3714072Z               "line": 24
2026-06-21T05:16:14.3714158Z             },
2026-06-21T05:16:14.3714243Z             {
2026-06-21T05:16:14.3714362Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-21T05:16:14.3714449Z               "line": 34
2026-06-21T05:16:14.3714535Z             },
2026-06-21T05:16:14.3714615Z             {
2026-06-21T05:16:14.3714735Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-21T05:16:14.3714816Z               "line": 60
2026-06-21T05:16:14.3715038Z             },
2026-06-21T05:16:14.3715129Z             {
2026-06-21T05:16:14.3715246Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-21T05:16:14.3715332Z               "line": 82
2026-06-21T05:16:14.3715413Z             },
2026-06-21T05:16:14.3715500Z             {
2026-06-21T05:16:14.3715617Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-21T05:16:14.3715694Z               "line": 94
2026-06-21T05:16:14.3715776Z             },
2026-06-21T05:16:14.3715857Z             {
2026-06-21T05:16:14.3715980Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-21T05:16:14.3716072Z               "line": 96
2026-06-21T05:16:14.3716256Z             },
2026-06-21T05:16:14.3716344Z             {
2026-06-21T05:16:14.3716471Z               "path": "crates/spt-daemon/src/pump/notif.rs",
2026-06-21T05:16:14.3716566Z               "line": 44
2026-06-21T05:16:14.3716653Z             },
2026-06-21T05:16:14.3716735Z             {
2026-06-21T05:16:14.3716853Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-21T05:16:14.3716953Z               "line": 20
2026-06-21T05:16:14.3717040Z             },
2026-06-21T05:16:14.3717124Z             {
2026-06-21T05:16:14.3717239Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-21T05:16:14.3717331Z               "line": 30
2026-06-21T05:16:14.3717416Z             },
2026-06-21T05:16:14.3717497Z             {
2026-06-21T05:16:14.3717617Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-21T05:16:14.3717712Z               "line": 50
2026-06-21T05:16:14.3717796Z             },
2026-06-21T05:16:14.3717881Z             {
2026-06-21T05:16:14.3717991Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T05:16:14.3718090Z               "line": 28
2026-06-21T05:16:14.3718170Z             },
2026-06-21T05:16:14.3718261Z             {
2026-06-21T05:16:14.3718371Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T05:16:14.3718461Z               "line": 126
2026-06-21T05:16:14.3718561Z             },
2026-06-21T05:16:14.3718643Z             {
2026-06-21T05:16:14.3718757Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T05:16:14.3718847Z               "line": 161
2026-06-21T05:16:14.3718929Z             },
2026-06-21T05:16:14.3719090Z             {
2026-06-21T05:16:14.3719196Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T05:16:14.3719287Z               "line": 202
2026-06-21T05:16:14.3719367Z             },
2026-06-21T05:16:14.3719453Z             {
2026-06-21T05:16:14.3719549Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T05:16:14.3719635Z               "line": 213
2026-06-21T05:16:14.3719730Z             },
2026-06-21T05:16:14.3719811Z             {
2026-06-21T05:16:14.3719917Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T05:16:14.3720001Z               "line": 238
2026-06-21T05:16:14.3720087Z             },
2026-06-21T05:16:14.3720174Z             {
2026-06-21T05:16:14.3720283Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T05:16:14.3720377Z               "line": 261
2026-06-21T05:16:14.3720462Z             },
2026-06-21T05:16:14.3720544Z             {
2026-06-21T05:16:14.3720651Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.3720737Z               "line": 86
2026-06-21T05:16:14.3720813Z             }
2026-06-21T05:16:14.3720885Z           ]
2026-06-21T05:16:14.3720966Z         },
2026-06-21T05:16:14.3721052Z         "int": {
2026-06-21T05:16:14.3721147Z           "complete": true,
2026-06-21T05:16:14.3721229Z           "evidence": [
2026-06-21T05:16:14.3721309Z             {
2026-06-21T05:16:14.3721433Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-21T05:16:14.3721520Z               "line": 285
2026-06-21T05:16:14.3721605Z             },
2026-06-21T05:16:14.3721690Z             {
2026-06-21T05:16:14.3721806Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-21T05:16:14.3721891Z               "line": 145
2026-06-21T05:16:14.3722072Z             },
2026-06-21T05:16:14.3722159Z             {
2026-06-21T05:16:14.3722268Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.3722353Z               "line": 684
2026-06-21T05:16:14.3722436Z             },
2026-06-21T05:16:14.3722516Z             {
2026-06-21T05:16:14.3722630Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.3722731Z               "line": 1102
2026-06-21T05:16:14.3722817Z             }
2026-06-21T05:16:14.3722897Z           ]
2026-06-21T05:16:14.3722983Z         },
2026-06-21T05:16:14.3723065Z         "unit": {
2026-06-21T05:16:14.3723160Z           "complete": true,
2026-06-21T05:16:14.3723354Z           "evidence": [
2026-06-21T05:16:14.3723445Z             {
2026-06-21T05:16:14.3723559Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T05:16:14.3723644Z               "line": 572
2026-06-21T05:16:14.3723726Z             },
2026-06-21T05:16:14.3723803Z             {
2026-06-21T05:16:14.3723926Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T05:16:14.3724007Z               "line": 636
2026-06-21T05:16:14.3724089Z             },
2026-06-21T05:16:14.3724170Z             {
2026-06-21T05:16:14.3724283Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T05:16:14.3724366Z               "line": 740
2026-06-21T05:16:14.3724446Z             },
2026-06-21T05:16:14.3724522Z             {
2026-06-21T05:16:14.3724627Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T05:16:14.3724718Z               "line": 772
2026-06-21T05:16:14.3724804Z             },
2026-06-21T05:16:14.3724875Z             {
2026-06-21T05:16:14.3724986Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T05:16:14.3725076Z               "line": 840
2026-06-21T05:16:14.3725156Z             },
2026-06-21T05:16:14.3725237Z             {
2026-06-21T05:16:14.3725348Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T05:16:14.3725447Z               "line": 898
2026-06-21T05:16:14.3725537Z             },
2026-06-21T05:16:14.3725622Z             {
2026-06-21T05:16:14.3725722Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T05:16:14.3725816Z               "line": 1173
2026-06-21T05:16:14.3725901Z             },
2026-06-21T05:16:14.3725973Z             {
2026-06-21T05:16:14.3726102Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-21T05:16:14.3726192Z               "line": 157
2026-06-21T05:16:14.3726274Z             },
2026-06-21T05:16:14.3726351Z             {
2026-06-21T05:16:14.3726464Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-21T05:16:14.3726545Z               "line": 250
2026-06-21T05:16:14.3726651Z             },
2026-06-21T05:16:14.3726764Z             {
2026-06-21T05:16:14.3726869Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-21T05:16:14.3726956Z               "line": 273
2026-06-21T05:16:14.3727041Z             },
2026-06-21T05:16:14.3727126Z             {
2026-06-21T05:16:14.3727238Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-21T05:16:14.3727327Z               "line": 355
2026-06-21T05:16:14.3727413Z             },
2026-06-21T05:16:14.3727494Z             {
2026-06-21T05:16:14.3727605Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-21T05:16:14.3727689Z               "line": 392
2026-06-21T05:16:14.3727770Z             },
2026-06-21T05:16:14.3727858Z             {
2026-06-21T05:16:14.3727985Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-21T05:16:14.3728076Z               "line": 131
2026-06-21T05:16:14.3728163Z             },
2026-06-21T05:16:14.3728239Z             {
2026-06-21T05:16:14.3728356Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-21T05:16:14.3728451Z               "line": 72
2026-06-21T05:16:14.3728537Z             },
2026-06-21T05:16:14.3728608Z             {
2026-06-21T05:16:14.3728725Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-21T05:16:14.3728802Z               "line": 97
2026-06-21T05:16:14.3729049Z             },
2026-06-21T05:16:14.3729126Z             {
2026-06-21T05:16:14.3729236Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T05:16:14.3729331Z               "line": 379
2026-06-21T05:16:14.3729412Z             },
2026-06-21T05:16:14.3729499Z             {
2026-06-21T05:16:14.3729604Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T05:16:14.3729683Z               "line": 417
2026-06-21T05:16:14.3729765Z             },
2026-06-21T05:16:14.3729847Z             {
2026-06-21T05:16:14.3729956Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T05:16:14.3730037Z               "line": 433
2026-06-21T05:16:14.3730223Z             },
2026-06-21T05:16:14.3730308Z             {
2026-06-21T05:16:14.3730415Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T05:16:14.3730496Z               "line": 472
2026-06-21T05:16:14.3730575Z             },
2026-06-21T05:16:14.3730657Z             {
2026-06-21T05:16:14.3730768Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T05:16:14.3730857Z               "line": 489
2026-06-21T05:16:14.3730937Z             },
2026-06-21T05:16:14.3731032Z             {
2026-06-21T05:16:14.3731142Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T05:16:14.3731230Z               "line": 517
2026-06-21T05:16:14.3731307Z             },
2026-06-21T05:16:14.3731392Z             {
2026-06-21T05:16:14.3731499Z               "path": "crates/spt-store/src/notif.rs",
2026-06-21T05:16:14.3731583Z               "line": 548
2026-06-21T05:16:14.3731664Z             },
2026-06-21T05:16:14.3731751Z             {
2026-06-21T05:16:14.3731883Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.3731964Z               "line": 745
2026-06-21T05:16:14.3732042Z             }
2026-06-21T05:16:14.3732122Z           ]
2026-06-21T05:16:14.3732203Z         }
2026-06-21T05:16:14.3732293Z       }
2026-06-21T05:16:14.3732366Z     },
2026-06-21T05:16:14.3732451Z     {
2026-06-21T05:16:14.3732551Z       "id": "REQ-NOTIF-2",
2026-06-21T05:16:14.3732814Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-21T05:16:14.3732899Z       "requiredStages": [
2026-06-21T05:16:14.3732986Z         "doc",
2026-06-21T05:16:14.3733071Z         "impl",
2026-06-21T05:16:14.3733152Z         "unit",
2026-06-21T05:16:14.3733224Z         "int"
2026-06-21T05:16:14.3733310Z       ],
2026-06-21T05:16:14.3733396Z       "stages": {
2026-06-21T05:16:14.3733471Z         "doc": {
2026-06-21T05:16:14.3733553Z           "complete": true,
2026-06-21T05:16:14.3733640Z           "evidence": [
2026-06-21T05:16:14.3733724Z             {
2026-06-21T05:16:14.3733828Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.3733914Z               "line": 509
2026-06-21T05:16:14.3733995Z             },
2026-06-21T05:16:14.3734077Z             {
2026-06-21T05:16:14.3734176Z               "path": "docs/MANIFEST.md",
2026-06-21T05:16:14.3734267Z               "line": 123
2026-06-21T05:16:14.3734344Z             }
2026-06-21T05:16:14.3734424Z           ]
2026-06-21T05:16:14.3734509Z         },
2026-06-21T05:16:14.3734597Z         "impl": {
2026-06-21T05:16:14.3734682Z           "complete": true,
2026-06-21T05:16:14.3734772Z           "evidence": [
2026-06-21T05:16:14.3734853Z             {
2026-06-21T05:16:14.3734963Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T05:16:14.3735039Z               "line": 287
2026-06-21T05:16:14.3735125Z             },
2026-06-21T05:16:14.3735211Z             {
2026-06-21T05:16:14.3735326Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T05:16:14.3735416Z               "line": 301
2026-06-21T05:16:14.3735497Z             },
2026-06-21T05:16:14.3735579Z             {
2026-06-21T05:16:14.3735687Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T05:16:14.3735769Z               "line": 326
2026-06-21T05:16:14.3735855Z             },
2026-06-21T05:16:14.3736050Z             {
2026-06-21T05:16:14.3736168Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.3736254Z               "line": 239
2026-06-21T05:16:14.3736343Z             },
2026-06-21T05:16:14.3736423Z             {
2026-06-21T05:16:14.3736543Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.3736634Z               "line": 95
2026-06-21T05:16:14.3736714Z             },
2026-06-21T05:16:14.3736795Z             {
2026-06-21T05:16:14.3736901Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3736996Z               "line": 2225
2026-06-21T05:16:14.3737076Z             },
2026-06-21T05:16:14.3737235Z             {
2026-06-21T05:16:14.3737339Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3737425Z               "line": 2274
2026-06-21T05:16:14.3737511Z             },
2026-06-21T05:16:14.3737597Z             {
2026-06-21T05:16:14.3737701Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3737788Z               "line": 2353
2026-06-21T05:16:14.3737883Z             },
2026-06-21T05:16:14.3737964Z             {
2026-06-21T05:16:14.3738069Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3738155Z               "line": 2392
2026-06-21T05:16:14.3738240Z             }
2026-06-21T05:16:14.3738317Z           ]
2026-06-21T05:16:14.3738393Z         },
2026-06-21T05:16:14.3738475Z         "int": {
2026-06-21T05:16:14.3738569Z           "complete": true,
2026-06-21T05:16:14.3738650Z           "evidence": [
2026-06-21T05:16:14.3738737Z             {
2026-06-21T05:16:14.3738860Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.3739030Z               "line": 810
2026-06-21T05:16:14.3739112Z             },
2026-06-21T05:16:14.3739201Z             {
2026-06-21T05:16:14.3739319Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.3739405Z               "line": 1345
2026-06-21T05:16:14.3739491Z             }
2026-06-21T05:16:14.3739572Z           ]
2026-06-21T05:16:14.3739662Z         },
2026-06-21T05:16:14.3739744Z         "unit": {
2026-06-21T05:16:14.3739840Z           "complete": true,
2026-06-21T05:16:14.3739924Z           "evidence": [
2026-06-21T05:16:14.3740011Z             {
2026-06-21T05:16:14.3740116Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T05:16:14.3740206Z               "line": 1022
2026-06-21T05:16:14.3740292Z             },
2026-06-21T05:16:14.3740374Z             {
2026-06-21T05:16:14.3740492Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T05:16:14.3740568Z               "line": 1090
2026-06-21T05:16:14.3740655Z             },
2026-06-21T05:16:14.3740741Z             {
2026-06-21T05:16:14.3740845Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3740931Z               "line": 8210
2026-06-21T05:16:14.3741008Z             },
2026-06-21T05:16:14.3741094Z             {
2026-06-21T05:16:14.3741193Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3741285Z               "line": 8265
2026-06-21T05:16:14.3741371Z             }
2026-06-21T05:16:14.3741459Z           ]
2026-06-21T05:16:14.3741540Z         }
2026-06-21T05:16:14.3741621Z       }
2026-06-21T05:16:14.3741707Z     },
2026-06-21T05:16:14.3741781Z     {
2026-06-21T05:16:14.3741876Z       "id": "REQ-PAIR-1",
2026-06-21T05:16:14.3741981Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-21T05:16:14.3742078Z       "requiredStages": [
2026-06-21T05:16:14.3742172Z         "impl",
2026-06-21T05:16:14.3742253Z         "unit",
2026-06-21T05:16:14.3742339Z         "int"
2026-06-21T05:16:14.3742421Z       ],
2026-06-21T05:16:14.3742505Z       "stages": {
2026-06-21T05:16:14.3742587Z         "doc": {
2026-06-21T05:16:14.3742682Z           "complete": false,
2026-06-21T05:16:14.3742768Z           "evidence": []
2026-06-21T05:16:14.3742849Z         },
2026-06-21T05:16:14.3742941Z         "impl": {
2026-06-21T05:16:14.3743025Z           "complete": true,
2026-06-21T05:16:14.3743115Z           "evidence": [
2026-06-21T05:16:14.3743298Z             {
2026-06-21T05:16:14.3743430Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T05:16:14.3743522Z               "line": 27
2026-06-21T05:16:14.3743599Z             },
2026-06-21T05:16:14.3743688Z             {
2026-06-21T05:16:14.3743808Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T05:16:14.3743890Z               "line": 88
2026-06-21T05:16:14.3743975Z             },
2026-06-21T05:16:14.3744056Z             {
2026-06-21T05:16:14.3744181Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T05:16:14.3744271Z               "line": 110
2026-06-21T05:16:14.3744449Z             },
2026-06-21T05:16:14.3744527Z             {
2026-06-21T05:16:14.3744655Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T05:16:14.3744746Z               "line": 153
2026-06-21T05:16:14.3744832Z             },
2026-06-21T05:16:14.3744918Z             {
2026-06-21T05:16:14.3745041Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T05:16:14.3745132Z               "line": 182
2026-06-21T05:16:14.3745218Z             },
2026-06-21T05:16:14.3745304Z             {
2026-06-21T05:16:14.3745433Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-21T05:16:14.3745524Z               "line": 29
2026-06-21T05:16:14.3745609Z             },
2026-06-21T05:16:14.3745694Z             {
2026-06-21T05:16:14.3745843Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-21T05:16:14.3745928Z               "line": 31
2026-06-21T05:16:14.3746019Z             },
2026-06-21T05:16:14.3746106Z             {
2026-06-21T05:16:14.3746238Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T05:16:14.3746324Z               "line": 44
2026-06-21T05:16:14.3746411Z             },
2026-06-21T05:16:14.3746487Z             {
2026-06-21T05:16:14.3746610Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T05:16:14.3746695Z               "line": 171
2026-06-21T05:16:14.3746791Z             },
2026-06-21T05:16:14.3746870Z             {
2026-06-21T05:16:14.3746992Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T05:16:14.3747084Z               "line": 376
2026-06-21T05:16:14.3747166Z             }
2026-06-21T05:16:14.3747251Z           ]
2026-06-21T05:16:14.3747331Z         },
2026-06-21T05:16:14.3747418Z         "int": {
2026-06-21T05:16:14.3747504Z           "complete": true,
2026-06-21T05:16:14.3747599Z           "evidence": [
2026-06-21T05:16:14.3747680Z             {
2026-06-21T05:16:14.3747804Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.3747889Z               "line": 645
2026-06-21T05:16:14.3747970Z             },
2026-06-21T05:16:14.3748053Z             {
2026-06-21T05:16:14.3748166Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.3748247Z               "line": 887
2026-06-21T05:16:14.3748328Z             }
2026-06-21T05:16:14.3748410Z           ]
2026-06-21T05:16:14.3748495Z         },
2026-06-21T05:16:14.3748595Z         "unit": {
2026-06-21T05:16:14.3748692Z           "complete": true,
2026-06-21T05:16:14.3748772Z           "evidence": [
2026-06-21T05:16:14.3748858Z             {
2026-06-21T05:16:14.3749063Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T05:16:14.3749162Z               "line": 236
2026-06-21T05:16:14.3749244Z             },
2026-06-21T05:16:14.3749331Z             {
2026-06-21T05:16:14.3749458Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-21T05:16:14.3749547Z               "line": 349
2026-06-21T05:16:14.3749629Z             },
2026-06-21T05:16:14.3749723Z             {
2026-06-21T05:16:14.3749836Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-21T05:16:14.3749917Z               "line": 194
2026-06-21T05:16:14.3750004Z             },
2026-06-21T05:16:14.3750090Z             {
2026-06-21T05:16:14.3750198Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-21T05:16:14.3750395Z               "line": 216
2026-06-21T05:16:14.3750480Z             },
2026-06-21T05:16:14.3750571Z             {
2026-06-21T05:16:14.3750686Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-21T05:16:14.3750776Z               "line": 230
2026-06-21T05:16:14.3750862Z             },
2026-06-21T05:16:14.3750948Z             {
2026-06-21T05:16:14.3751072Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-21T05:16:14.3751162Z               "line": 242
2026-06-21T05:16:14.3751239Z             },
2026-06-21T05:16:14.3751329Z             {
2026-06-21T05:16:14.3751434Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-21T05:16:14.3751635Z               "line": 256
2026-06-21T05:16:14.3751719Z             },
2026-06-21T05:16:14.3751801Z             {
2026-06-21T05:16:14.3751921Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-21T05:16:14.3752011Z               "line": 270
2026-06-21T05:16:14.3752100Z             },
2026-06-21T05:16:14.3752186Z             {
2026-06-21T05:16:14.3752309Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-21T05:16:14.3752393Z               "line": 277
2026-06-21T05:16:14.3752479Z             },
2026-06-21T05:16:14.3752551Z             {
2026-06-21T05:16:14.3752666Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-21T05:16:14.3752756Z               "line": 295
2026-06-21T05:16:14.3752837Z             },
2026-06-21T05:16:14.3752923Z             {
2026-06-21T05:16:14.3753037Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T05:16:14.3753133Z               "line": 968
2026-06-21T05:16:14.3753214Z             },
2026-06-21T05:16:14.3753295Z             {
2026-06-21T05:16:14.3753419Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T05:16:14.3753501Z               "line": 1051
2026-06-21T05:16:14.3753585Z             },
2026-06-21T05:16:14.3753662Z             {
2026-06-21T05:16:14.3753787Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T05:16:14.3753877Z               "line": 1121
2026-06-21T05:16:14.3753953Z             },
2026-06-21T05:16:14.3754039Z             {
2026-06-21T05:16:14.3754159Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T05:16:14.3754239Z               "line": 1182
2026-06-21T05:16:14.3754324Z             },
2026-06-21T05:16:14.3754407Z             {
2026-06-21T05:16:14.3754521Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T05:16:14.3754611Z               "line": 1238
2026-06-21T05:16:14.3754688Z             },
2026-06-21T05:16:14.3754774Z             {
2026-06-21T05:16:14.3754901Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T05:16:14.3754991Z               "line": 1457
2026-06-21T05:16:14.3755082Z             }
2026-06-21T05:16:14.3755164Z           ]
2026-06-21T05:16:14.3755244Z         }
2026-06-21T05:16:14.3755329Z       }
2026-06-21T05:16:14.3755416Z     },
2026-06-21T05:16:14.3755502Z     {
2026-06-21T05:16:14.3755596Z       "id": "REQ-PAIR-2",
2026-06-21T05:16:14.3755722Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-21T05:16:14.3755826Z       "requiredStages": [],
2026-06-21T05:16:14.3755911Z       "stages": {
2026-06-21T05:16:14.3755993Z         "doc": {
2026-06-21T05:16:14.3756089Z           "complete": false,
2026-06-21T05:16:14.3756184Z           "evidence": []
2026-06-21T05:16:14.3756269Z         },
2026-06-21T05:16:14.3756351Z         "impl": {
2026-06-21T05:16:14.3756446Z           "complete": false,
2026-06-21T05:16:14.3756541Z           "evidence": []
2026-06-21T05:16:14.3756637Z         },
2026-06-21T05:16:14.3756719Z         "int": {
2026-06-21T05:16:14.3756817Z           "complete": false,
2026-06-21T05:16:14.3756889Z           "evidence": []
2026-06-21T05:16:14.3756976Z         },
2026-06-21T05:16:14.3757062Z         "unit": {
2026-06-21T05:16:14.3757151Z           "complete": false,
2026-06-21T05:16:14.3757317Z           "evidence": []
2026-06-21T05:16:14.3757393Z         }
2026-06-21T05:16:14.3757477Z       }
2026-06-21T05:16:14.3757562Z     },
2026-06-21T05:16:14.3757649Z     {
2026-06-21T05:16:14.3757740Z       "id": "REQ-PAIR-3",
2026-06-21T05:16:14.3757891Z       "title": "Fetch current pairing code from any paired node",
2026-06-21T05:16:14.3757993Z       "requiredStages": [
2026-06-21T05:16:14.3758078Z         "impl",
2026-06-21T05:16:14.3758159Z         "unit"
2026-06-21T05:16:14.3758245Z       ],
2026-06-21T05:16:14.3758331Z       "stages": {
2026-06-21T05:16:14.3758416Z         "doc": {
2026-06-21T05:16:14.3758511Z           "complete": false,
2026-06-21T05:16:14.3758674Z           "evidence": []
2026-06-21T05:16:14.3758759Z         },
2026-06-21T05:16:14.3758845Z         "impl": {
2026-06-21T05:16:14.3758932Z           "complete": true,
2026-06-21T05:16:14.3759103Z           "evidence": [
2026-06-21T05:16:14.3759184Z             {
2026-06-21T05:16:14.3759294Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3759379Z               "line": 3259
2026-06-21T05:16:14.3759456Z             },
2026-06-21T05:16:14.3759538Z             {
2026-06-21T05:16:14.3759642Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3759727Z               "line": 3328
2026-06-21T05:16:14.3759809Z             },
2026-06-21T05:16:14.3759891Z             {
2026-06-21T05:16:14.3759985Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3760075Z               "line": 3709
2026-06-21T05:16:14.3760156Z             },
2026-06-21T05:16:14.3760241Z             {
2026-06-21T05:16:14.3760354Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3760448Z               "line": 4961
2026-06-21T05:16:14.3760535Z             }
2026-06-21T05:16:14.3760621Z           ]
2026-06-21T05:16:14.3760706Z         },
2026-06-21T05:16:14.3760792Z         "int": {
2026-06-21T05:16:14.3760884Z           "complete": false,
2026-06-21T05:16:14.3760983Z           "evidence": []
2026-06-21T05:16:14.3761063Z         },
2026-06-21T05:16:14.3761146Z         "unit": {
2026-06-21T05:16:14.3761241Z           "complete": true,
2026-06-21T05:16:14.3761317Z           "evidence": [
2026-06-21T05:16:14.3761397Z             {
2026-06-21T05:16:14.3761494Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3761594Z               "line": 9964
2026-06-21T05:16:14.3761670Z             },
2026-06-21T05:16:14.3761761Z             {
2026-06-21T05:16:14.3761856Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3761941Z               "line": 10179
2026-06-21T05:16:14.3762027Z             },
2026-06-21T05:16:14.3762105Z             {
2026-06-21T05:16:14.3762209Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3762299Z               "line": 10838
2026-06-21T05:16:14.3762386Z             },
2026-06-21T05:16:14.3762458Z             {
2026-06-21T05:16:14.3762557Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3762641Z               "line": 10857
2026-06-21T05:16:14.3762732Z             },
2026-06-21T05:16:14.3762813Z             {
2026-06-21T05:16:14.3762902Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3762982Z               "line": 10881
2026-06-21T05:16:14.3763068Z             },
2026-06-21T05:16:14.3763150Z             {
2026-06-21T05:16:14.3763250Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3763335Z               "line": 10900
2026-06-21T05:16:14.3763422Z             },
2026-06-21T05:16:14.3763517Z             {
2026-06-21T05:16:14.3763616Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3763698Z               "line": 10913
2026-06-21T05:16:14.3763789Z             },
2026-06-21T05:16:14.3763875Z             {
2026-06-21T05:16:14.3763974Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3764056Z               "line": 10922
2026-06-21T05:16:14.3764141Z             }
2026-06-21T05:16:14.3764227Z           ]
2026-06-21T05:16:14.3764313Z         }
2026-06-21T05:16:14.3764504Z       }
2026-06-21T05:16:14.3764589Z     },
2026-06-21T05:16:14.3764672Z     {
2026-06-21T05:16:14.3764771Z       "id": "REQ-PAIR-4",
2026-06-21T05:16:14.3764875Z       "title": "Subnet naming on first pairing",
2026-06-21T05:16:14.3764967Z       "requiredStages": [
2026-06-21T05:16:14.3765048Z         "impl",
2026-06-21T05:16:14.3765128Z         "unit"
2026-06-21T05:16:14.3765209Z       ],
2026-06-21T05:16:14.3765296Z       "stages": {
2026-06-21T05:16:14.3765382Z         "doc": {
2026-06-21T05:16:14.3765475Z           "complete": false,
2026-06-21T05:16:14.3765566Z           "evidence": []
2026-06-21T05:16:14.3765656Z         },
2026-06-21T05:16:14.3765734Z         "impl": {
2026-06-21T05:16:14.3765933Z           "complete": true,
2026-06-21T05:16:14.3766019Z           "evidence": [
2026-06-21T05:16:14.3766110Z             {
2026-06-21T05:16:14.3766223Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-21T05:16:14.3766311Z               "line": 174
2026-06-21T05:16:14.3766396Z             }
2026-06-21T05:16:14.3766490Z           ]
2026-06-21T05:16:14.3766577Z         },
2026-06-21T05:16:14.3766663Z         "int": {
2026-06-21T05:16:14.3766749Z           "complete": false,
2026-06-21T05:16:14.3766829Z           "evidence": []
2026-06-21T05:16:14.3766916Z         },
2026-06-21T05:16:14.3767001Z         "unit": {
2026-06-21T05:16:14.3767087Z           "complete": true,
2026-06-21T05:16:14.3767173Z           "evidence": [
2026-06-21T05:16:14.3767255Z             {
2026-06-21T05:16:14.3767387Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T05:16:14.3767468Z               "line": 1294
2026-06-21T05:16:14.3767555Z             }
2026-06-21T05:16:14.3767645Z           ]
2026-06-21T05:16:14.3767720Z         }
2026-06-21T05:16:14.3767805Z       }
2026-06-21T05:16:14.3767892Z     },
2026-06-21T05:16:14.3767976Z     {
2026-06-21T05:16:14.3768066Z       "id": "REQ-PAIR-5",
2026-06-21T05:16:14.3768366Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-21T05:16:14.3768471Z       "requiredStages": [
2026-06-21T05:16:14.3768553Z         "impl",
2026-06-21T05:16:14.3768639Z         "unit",
2026-06-21T05:16:14.3768709Z         "int"
2026-06-21T05:16:14.3768790Z       ],
2026-06-21T05:16:14.3768873Z       "stages": {
2026-06-21T05:16:14.3769043Z         "doc": {
2026-06-21T05:16:14.3769134Z           "complete": false,
2026-06-21T05:16:14.3769229Z           "evidence": []
2026-06-21T05:16:14.3769320Z         },
2026-06-21T05:16:14.3769401Z         "impl": {
2026-06-21T05:16:14.3769488Z           "complete": true,
2026-06-21T05:16:14.3769567Z           "evidence": [
2026-06-21T05:16:14.3769658Z             {
2026-06-21T05:16:14.3769793Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-21T05:16:14.3769882Z               "line": 44
2026-06-21T05:16:14.3769973Z             },
2026-06-21T05:16:14.3770054Z             {
2026-06-21T05:16:14.3770179Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-21T05:16:14.3770268Z               "line": 96
2026-06-21T05:16:14.3770350Z             },
2026-06-21T05:16:14.3770437Z             {
2026-06-21T05:16:14.3770559Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-21T05:16:14.3770649Z               "line": 107
2026-06-21T05:16:14.3770735Z             },
2026-06-21T05:16:14.3773263Z             {
2026-06-21T05:16:14.3773424Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-21T05:16:14.3773514Z               "line": 124
2026-06-21T05:16:14.3773595Z             },
2026-06-21T05:16:14.3773681Z             {
2026-06-21T05:16:14.3773810Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-21T05:16:14.3773910Z               "line": 155
2026-06-21T05:16:14.3773987Z             },
2026-06-21T05:16:14.3774072Z             {
2026-06-21T05:16:14.3774200Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-21T05:16:14.3774282Z               "line": 195
2026-06-21T05:16:14.3774500Z             },
2026-06-21T05:16:14.3774583Z             {
2026-06-21T05:16:14.3774711Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-21T05:16:14.3774801Z               "line": 251
2026-06-21T05:16:14.3774882Z             },
2026-06-21T05:16:14.3774969Z             {
2026-06-21T05:16:14.3775107Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-21T05:16:14.3775188Z               "line": 33
2026-06-21T05:16:14.3775274Z             },
2026-06-21T05:16:14.3775355Z             {
2026-06-21T05:16:14.3775493Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-21T05:16:14.3775683Z               "line": 45
2026-06-21T05:16:14.3775769Z             },
2026-06-21T05:16:14.3775856Z             {
2026-06-21T05:16:14.3775993Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-21T05:16:14.3776083Z               "line": 59
2026-06-21T05:16:14.3776169Z             },
2026-06-21T05:16:14.3776256Z             {
2026-06-21T05:16:14.3776383Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T05:16:14.3776459Z               "line": 376
2026-06-21T05:16:14.3776546Z             }
2026-06-21T05:16:14.3776627Z           ]
2026-06-21T05:16:14.3776712Z         },
2026-06-21T05:16:14.3776798Z         "int": {
2026-06-21T05:16:14.3776895Z           "complete": true,
2026-06-21T05:16:14.3776990Z           "evidence": [
2026-06-21T05:16:14.3777074Z             {
2026-06-21T05:16:14.3777200Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.3777279Z               "line": 887
2026-06-21T05:16:14.3777365Z             },
2026-06-21T05:16:14.3777457Z             {
2026-06-21T05:16:14.3777571Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-21T05:16:14.3777657Z               "line": 342
2026-06-21T05:16:14.3777742Z             }
2026-06-21T05:16:14.3777829Z           ]
2026-06-21T05:16:14.3777914Z         },
2026-06-21T05:16:14.3777999Z         "unit": {
2026-06-21T05:16:14.3778086Z           "complete": true,
2026-06-21T05:16:14.3778173Z           "evidence": [
2026-06-21T05:16:14.3778257Z             {
2026-06-21T05:16:14.3778379Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-21T05:16:14.3778471Z               "line": 293
2026-06-21T05:16:14.3778551Z             },
2026-06-21T05:16:14.3778635Z             {
2026-06-21T05:16:14.3778750Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-21T05:16:14.3778827Z               "line": 304
2026-06-21T05:16:14.3778912Z             },
2026-06-21T05:16:14.3779074Z             {
2026-06-21T05:16:14.3779199Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-21T05:16:14.3779279Z               "line": 406
2026-06-21T05:16:14.3779370Z             },
2026-06-21T05:16:14.3779456Z             {
2026-06-21T05:16:14.3779588Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-21T05:16:14.3779675Z               "line": 72
2026-06-21T05:16:14.3779767Z             },
2026-06-21T05:16:14.3779847Z             {
2026-06-21T05:16:14.3779980Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-21T05:16:14.3780062Z               "line": 82
2026-06-21T05:16:14.3780151Z             },
2026-06-21T05:16:14.3780228Z             {
2026-06-21T05:16:14.3780367Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-21T05:16:14.3780452Z               "line": 100
2026-06-21T05:16:14.3780538Z             },
2026-06-21T05:16:14.3780619Z             {
2026-06-21T05:16:14.3780753Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-21T05:16:14.3780853Z               "line": 110
2026-06-21T05:16:14.3780934Z             },
2026-06-21T05:16:14.3781021Z             {
2026-06-21T05:16:14.3781148Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-21T05:16:14.3781242Z               "line": 125
2026-06-21T05:16:14.3781324Z             },
2026-06-21T05:16:14.3781521Z             {
2026-06-21T05:16:14.3781646Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T05:16:14.3781732Z               "line": 1044
2026-06-21T05:16:14.3781817Z             },
2026-06-21T05:16:14.3781898Z             {
2026-06-21T05:16:14.3782023Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T05:16:14.3782117Z               "line": 1110
2026-06-21T05:16:14.3782203Z             },
2026-06-21T05:16:14.3782281Z             {
2026-06-21T05:16:14.3782404Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T05:16:14.3782489Z               "line": 1357
2026-06-21T05:16:14.3782576Z             }
2026-06-21T05:16:14.3782757Z           ]
2026-06-21T05:16:14.3782837Z         }
2026-06-21T05:16:14.3782925Z       }
2026-06-21T05:16:14.3783009Z     },
2026-06-21T05:16:14.3783090Z     {
2026-06-21T05:16:14.3783181Z       "id": "REQ-PAIR-6",
2026-06-21T05:16:14.3783443Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-21T05:16:14.3783540Z       "requiredStages": [
2026-06-21T05:16:14.3783625Z         "impl",
2026-06-21T05:16:14.3783710Z         "unit"
2026-06-21T05:16:14.3783794Z       ],
2026-06-21T05:16:14.3783876Z       "stages": {
2026-06-21T05:16:14.3783961Z         "doc": {
2026-06-21T05:16:14.3784055Z           "complete": false,
2026-06-21T05:16:14.3784135Z           "evidence": []
2026-06-21T05:16:14.3784222Z         },
2026-06-21T05:16:14.3784304Z         "impl": {
2026-06-21T05:16:14.3784398Z           "complete": true,
2026-06-21T05:16:14.3784484Z           "evidence": [
2026-06-21T05:16:14.3784566Z             {
2026-06-21T05:16:14.3784684Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3784775Z               "line": 3328
2026-06-21T05:16:14.3784857Z             },
2026-06-21T05:16:14.3784938Z             {
2026-06-21T05:16:14.3785042Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3785123Z               "line": 3709
2026-06-21T05:16:14.3785214Z             },
2026-06-21T05:16:14.3785299Z             {
2026-06-21T05:16:14.3785419Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T05:16:14.3785496Z               "line": 18
2026-06-21T05:16:14.3785576Z             },
2026-06-21T05:16:14.3785662Z             {
2026-06-21T05:16:14.3785777Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T05:16:14.3785863Z               "line": 49
2026-06-21T05:16:14.3785938Z             },
2026-06-21T05:16:14.3786024Z             {
2026-06-21T05:16:14.3786135Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T05:16:14.3786224Z               "line": 318
2026-06-21T05:16:14.3786315Z             }
2026-06-21T05:16:14.3786392Z           ]
2026-06-21T05:16:14.3786478Z         },
2026-06-21T05:16:14.3786563Z         "int": {
2026-06-21T05:16:14.3786652Z           "complete": false,
2026-06-21T05:16:14.3786743Z           "evidence": []
2026-06-21T05:16:14.3786825Z         },
2026-06-21T05:16:14.3786915Z         "unit": {
2026-06-21T05:16:14.3787010Z           "complete": true,
2026-06-21T05:16:14.3787096Z           "evidence": [
2026-06-21T05:16:14.3787182Z             {
2026-06-21T05:16:14.3787286Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3787378Z               "line": 10935
2026-06-21T05:16:14.3787464Z             },
2026-06-21T05:16:14.3787550Z             {
2026-06-21T05:16:14.3787649Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3787740Z               "line": 10952
2026-06-21T05:16:14.3787821Z             },
2026-06-21T05:16:14.3787911Z             {
2026-06-21T05:16:14.3788017Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T05:16:14.3788108Z               "line": 383
2026-06-21T05:16:14.3788183Z             },
2026-06-21T05:16:14.3788264Z             {
2026-06-21T05:16:14.3788370Z               "path": "crates/spt/src/elevation.rs",
2026-06-21T05:16:14.3788460Z               "line": 392
2026-06-21T05:16:14.3788541Z             }
2026-06-21T05:16:14.3788699Z           ]
2026-06-21T05:16:14.3788779Z         }
2026-06-21T05:16:14.3788869Z       }
2026-06-21T05:16:14.3789036Z     },
2026-06-21T05:16:14.3789125Z     {
2026-06-21T05:16:14.3789215Z       "id": "REQ-PAIR-7",
2026-06-21T05:16:14.3789373Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-21T05:16:14.3789472Z       "requiredStages": [],
2026-06-21T05:16:14.3789553Z       "stages": {
2026-06-21T05:16:14.3789635Z         "doc": {
2026-06-21T05:16:14.3789720Z           "complete": false,
2026-06-21T05:16:14.3789806Z           "evidence": []
2026-06-21T05:16:14.3789887Z         },
2026-06-21T05:16:14.3789969Z         "impl": {
2026-06-21T05:16:14.3790163Z           "complete": false,
2026-06-21T05:16:14.3790245Z           "evidence": []
2026-06-21T05:16:14.3790331Z         },
2026-06-21T05:16:14.3790417Z         "int": {
2026-06-21T05:16:14.3790501Z           "complete": false,
2026-06-21T05:16:14.3790579Z           "evidence": []
2026-06-21T05:16:14.3790665Z         },
2026-06-21T05:16:14.3790760Z         "unit": {
2026-06-21T05:16:14.3790840Z           "complete": false,
2026-06-21T05:16:14.3790927Z           "evidence": []
2026-06-21T05:16:14.3791012Z         }
2026-06-21T05:16:14.3791089Z       }
2026-06-21T05:16:14.3791170Z     },
2026-06-21T05:16:14.3791252Z     {
2026-06-21T05:16:14.3791346Z       "id": "REQ-PAIR-8",
2026-06-21T05:16:14.3792678Z       "title": "NTP TOTP offset: the pairing ceremony queries NTP at ceremony time (both sides) and applies the derived offset to the TOTP calculation in-process only; system-clock fallback when NTP is unreachable (offline LAN pairing unaffected — NTP failure never blocks a pairing that succeeds today); never sets the OS clock; no background sync loop (M8 decision 18; field trigger: enlyzeam clock >1 min off exceeds the ±1 window)",
2026-06-21T05:16:14.3792782Z       "requiredStages": [
2026-06-21T05:16:14.3792870Z         "impl",
2026-06-21T05:16:14.3792950Z         "unit"
2026-06-21T05:16:14.3793035Z       ],
2026-06-21T05:16:14.3793126Z       "stages": {
2026-06-21T05:16:14.3793213Z         "doc": {
2026-06-21T05:16:14.3793298Z           "complete": false,
2026-06-21T05:16:14.3793388Z           "evidence": []
2026-06-21T05:16:14.3793470Z         },
2026-06-21T05:16:14.3793565Z         "impl": {
2026-06-21T05:16:14.3793646Z           "complete": true,
2026-06-21T05:16:14.3793722Z           "evidence": [
2026-06-21T05:16:14.3793804Z             {
2026-06-21T05:16:14.3793917Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T05:16:14.3794008Z               "line": 577
2026-06-21T05:16:14.3794081Z             },
2026-06-21T05:16:14.3794171Z             {
2026-06-21T05:16:14.3794308Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-21T05:16:14.3794393Z               "line": 22
2026-06-21T05:16:14.3794479Z             },
2026-06-21T05:16:14.3794563Z             {
2026-06-21T05:16:14.3794691Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-21T05:16:14.3794773Z               "line": 76
2026-06-21T05:16:14.3794864Z             },
2026-06-21T05:16:14.3794944Z             {
2026-06-21T05:16:14.3795063Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-21T05:16:14.3795159Z               "line": 127
2026-06-21T05:16:14.3795235Z             }
2026-06-21T05:16:14.3795325Z           ]
2026-06-21T05:16:14.3795413Z         },
2026-06-21T05:16:14.3795498Z         "int": {
2026-06-21T05:16:14.3795592Z           "complete": false,
2026-06-21T05:16:14.3795679Z           "evidence": []
2026-06-21T05:16:14.3795760Z         },
2026-06-21T05:16:14.3795845Z         "unit": {
2026-06-21T05:16:14.3795941Z           "complete": true,
2026-06-21T05:16:14.3796022Z           "evidence": [
2026-06-21T05:16:14.3796108Z             {
2026-06-21T05:16:14.3796236Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-21T05:16:14.3796318Z               "line": 183
2026-06-21T05:16:14.3796399Z             },
2026-06-21T05:16:14.3796479Z             {
2026-06-21T05:16:14.3796714Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-21T05:16:14.3796803Z               "line": 195
2026-06-21T05:16:14.3796875Z             },
2026-06-21T05:16:14.3796967Z             {
2026-06-21T05:16:14.3797081Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-21T05:16:14.3797170Z               "line": 211
2026-06-21T05:16:14.3797255Z             },
2026-06-21T05:16:14.3797337Z             {
2026-06-21T05:16:14.3797447Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-21T05:16:14.3797536Z               "line": 227
2026-06-21T05:16:14.3797623Z             }
2026-06-21T05:16:14.3797705Z           ]
2026-06-21T05:16:14.3797861Z         }
2026-06-21T05:16:14.3797943Z       }
2026-06-21T05:16:14.3798029Z     },
2026-06-21T05:16:14.3798110Z     {
2026-06-21T05:16:14.3798214Z       "id": "REQ-PICKER-1",
2026-06-21T05:16:14.3801802Z       "title": "The picker renders a FOUR-state endpoint status (extending the W2 online/offline duality): the list-item square AND a color-coded STATUS line at the top of the pick-existing right-side details both show — gray OFFLINE; green ONLINE (online + PTY-controllable spt-hosted, not controlled); amber 'ONLINE - HARNESS ONLY' (online but NOT broker-PTY-controllable = harness-hosted, no broker PTY seat — today mis-shows green); blue 'ONLINE + CONTROLLED' (online + driven_by.is_some()). Derived on EndpointRow from {offline | controllable | driven_by} with precedence offline→gray, else driven_by→blue, else !controllable→amber, else green (driven_by outranks harness-only; mutually exclusive in practice — a harness-only endpoint has no broker PTY to control). The controllable discriminator is a NEW InfoJson.controllable: Option<bool> (serde-default, N-1-safe), stamped at the establish seam — cmd_listen (harness-hosted relay, no broker PTY) → Some(false); cmd_bind live_agent (spt-hosted broker PTY) → Some(true); absent → not-controllable (amber) default (harness-hosted is the common mis-reported case; one bind self-corrects). Store-projection-only (no live daemon query — doyle ruling). (v0.10.0)",
2026-06-21T05:16:14.3801943Z       "requiredStages": [
2026-06-21T05:16:14.3802030Z         "impl",
2026-06-21T05:16:14.3802117Z         "unit"
2026-06-21T05:16:14.3802198Z       ],
2026-06-21T05:16:14.3802286Z       "stages": {
2026-06-21T05:16:14.3802372Z         "doc": {
2026-06-21T05:16:14.3802453Z           "complete": false,
2026-06-21T05:16:14.3802538Z           "evidence": []
2026-06-21T05:16:14.3802623Z         },
2026-06-21T05:16:14.3802708Z         "impl": {
2026-06-21T05:16:14.3802800Z           "complete": true,
2026-06-21T05:16:14.3802872Z           "evidence": [
2026-06-21T05:16:14.3802970Z             {
2026-06-21T05:16:14.3803091Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.3803176Z               "line": 248
2026-06-21T05:16:14.3803257Z             },
2026-06-21T05:16:14.3803342Z             {
2026-06-21T05:16:14.3803449Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T05:16:14.3803544Z               "line": 263
2026-06-21T05:16:14.3803628Z             }
2026-06-21T05:16:14.3803710Z           ]
2026-06-21T05:16:14.3803796Z         },
2026-06-21T05:16:14.3803877Z         "int": {
2026-06-21T05:16:14.3803972Z           "complete": false,
2026-06-21T05:16:14.3804054Z           "evidence": []
2026-06-21T05:16:14.3804134Z         },
2026-06-21T05:16:14.3804225Z         "unit": {
2026-06-21T05:16:14.3804316Z           "complete": true,
2026-06-21T05:16:14.3804403Z           "evidence": [
2026-06-21T05:16:14.3804472Z             {
2026-06-21T05:16:14.3804578Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T05:16:14.3804669Z               "line": 476
2026-06-21T05:16:14.3804755Z             },
2026-06-21T05:16:14.3804839Z             {
2026-06-21T05:16:14.3804943Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.3805039Z               "line": 753
2026-06-21T05:16:14.3805119Z             },
2026-06-21T05:16:14.3805199Z             {
2026-06-21T05:16:14.3805415Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T05:16:14.3805504Z               "line": 886
2026-06-21T05:16:14.3805590Z             },
2026-06-21T05:16:14.3805663Z             {
2026-06-21T05:16:14.3805772Z               "path": "crates/spt/src/picker/view.rs",
2026-06-21T05:16:14.3805857Z               "line": 455
2026-06-21T05:16:14.3805948Z             }
2026-06-21T05:16:14.3806038Z           ]
2026-06-21T05:16:14.3806119Z         }
2026-06-21T05:16:14.3806205Z       }
2026-06-21T05:16:14.3806292Z     },
2026-06-21T05:16:14.3806377Z     {
2026-06-21T05:16:14.3806467Z       "id": "REQ-PICKER-2",
2026-06-21T05:16:14.3808412Z       "title": "The picker's project-history loader reads the git-backed context store, not the bare working tree: data.rs project_history_for enumerates an endpoint's projects via the BranchStore branch set (the context store keeps per-project context in git branches — contextstore::project_branch(project_id), checked out to projects/<project>/<id>/ only on-demand) instead of raw std::fs::read_dir over the empty working tree (which returned empty for ALL rows incl wall-a — the operator bug). Ordered newest→oldest by branch commit recency; degrades to empty (informational pane), never fails. (v0.10.0)",
2026-06-21T05:16:14.3808532Z       "requiredStages": [
2026-06-21T05:16:14.3808617Z         "impl",
2026-06-21T05:16:14.3808702Z         "unit"
2026-06-21T05:16:14.3808789Z       ],
2026-06-21T05:16:14.3808870Z       "stages": {
2026-06-21T05:16:14.3809027Z         "doc": {
2026-06-21T05:16:14.3809108Z           "complete": false,
2026-06-21T05:16:14.3809195Z           "evidence": []
2026-06-21T05:16:14.3809280Z         },
2026-06-21T05:16:14.3809375Z         "impl": {
2026-06-21T05:16:14.3809467Z           "complete": true,
2026-06-21T05:16:14.3809552Z           "evidence": [
2026-06-21T05:16:14.3809637Z             {
2026-06-21T05:16:14.3809766Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T05:16:14.3809853Z               "line": 183
2026-06-21T05:16:14.3809947Z             },
2026-06-21T05:16:14.3810037Z             {
2026-06-21T05:16:14.3810151Z               "path": "crates/spt/src/picker/data.rs",
2026-06-21T05:16:14.3810240Z               "line": 296
2026-06-21T05:16:14.3810325Z             }
2026-06-21T05:16:14.3810406Z           ]
2026-06-21T05:16:14.3810483Z         },
2026-06-21T05:16:14.3810565Z         "int": {
2026-06-21T05:16:14.3810654Z           "complete": false,
2026-06-21T05:16:14.3810745Z           "evidence": []
2026-06-21T05:16:14.3810827Z         },
2026-06-21T05:16:14.3810912Z         "unit": {
2026-06-21T05:16:14.3810997Z           "complete": true,
2026-06-21T05:16:14.3811089Z           "evidence": [
2026-06-21T05:16:14.3811165Z             {
2026-06-21T05:16:14.3811293Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T05:16:14.3811380Z               "line": 655
2026-06-21T05:16:14.3811461Z             }
2026-06-21T05:16:14.3811546Z           ]
2026-06-21T05:16:14.3811631Z         }
2026-06-21T05:16:14.3811719Z       }
2026-06-21T05:16:14.3811799Z     },
2026-06-21T05:16:14.3811889Z     {
2026-06-21T05:16:14.3811990Z       "id": "REQ-PICKER-3",
2026-06-21T05:16:14.3814375Z       "title": "A self-owned subnet row reconciles its status to the LIVE roster: a Subnet-category row whose endpoint_id overlaps a local (is_local) roster id is self-owned (this node hosts it), so its status square is OVERRIDDEN with the live roster status — the WAN registry snapshot (wansend::load_snapshots) is a periodically-advertised, independently-stale projection, while the local roster (p.alive) is ground truth for an endpoint this node hosts. One status square per endpoint (CONTEXT.md:348-350 — nothing licenses opposite squares for one endpoint across its Local vs Subnet listings). A reconcile pass in data.rs after the local_rows + subnet_rows gather; BOTH category listings are preserved (Local + Subnet are legitimately distinct views — you are in your own subnet), only the STATUS is unified. (v0.10.0)",
2026-06-21T05:16:14.3814605Z       "requiredStages": [
2026-06-21T05:16:14.3814695Z         "impl",
2026-06-21T05:16:14.3814776Z         "unit"
2026-06-21T05:16:14.3814866Z       ],
2026-06-21T05:16:14.3814953Z       "stages": {
2026-06-21T05:16:14.3815037Z         "doc": {
2026-06-21T05:16:14.3815128Z           "complete": false,
2026-06-21T05:16:14.3815206Z           "evidence": []
2026-06-21T05:16:14.3815292Z         },
2026-06-21T05:16:14.3815376Z         "impl": {
2026-06-21T05:16:14.3815461Z           "complete": true,
2026-06-21T05:16:14.3815547Z           "evidence": [
2026-06-21T05:16:14.3815633Z             {
2026-06-21T05:16:14.3815754Z               "path": "crates/spt/src/picker/data.rs",
2026-06-21T05:16:14.3815927Z               "line": 124
2026-06-21T05:16:14.3816017Z             }
2026-06-21T05:16:14.3816097Z           ]
2026-06-21T05:16:14.3816184Z         },
2026-06-21T05:16:14.3816265Z         "int": {
2026-06-21T05:16:14.3816351Z           "complete": false,
2026-06-21T05:16:14.3816459Z           "evidence": []
2026-06-21T05:16:14.3816542Z         },
2026-06-21T05:16:14.3816627Z         "unit": {
2026-06-21T05:16:14.3816712Z           "complete": true,
2026-06-21T05:16:14.3816809Z           "evidence": [
2026-06-21T05:16:14.3816899Z             {
2026-06-21T05:16:14.3817008Z               "path": "crates/spt/src/picker/data.rs",
2026-06-21T05:16:14.3817103Z               "line": 369
2026-06-21T05:16:14.3817186Z             }
2026-06-21T05:16:14.3817270Z           ]
2026-06-21T05:16:14.3817342Z         }
2026-06-21T05:16:14.3817433Z       }
2026-06-21T05:16:14.3817515Z     },
2026-06-21T05:16:14.3817595Z     {
2026-06-21T05:16:14.3817700Z       "id": "REQ-PICKER-4",
2026-06-21T05:16:14.3819663Z       "title": "The picker's Subnet category renders the canonical node LABEL, not bare key-hex: a subnet row's node renders as 'LABEL (keyprefix…)' (e.g. 'HFENDULEAM (bcead52b…)') per CONTEXT.md:650 + Instance.node_label, NOT the raw node key-hex (SPT_DEV:14efb80cb… — a picker-only regression because resource_projection→ResourceRow drops node_label, so data.rs subnet_rows uses the raw row.node). Thread node_label into the picker subnet path (ResourceRow gains node_label, or subnet_rows looks it up via the registry's node_labels) and REUSE the one canonical render (format!(\"{l} ({}…)\", key_prefix) — cli.rs / wansend.rs), never a re-implementation. (v0.10.0)",
2026-06-21T05:16:14.3819764Z       "requiredStages": [
2026-06-21T05:16:14.3819854Z         "impl",
2026-06-21T05:16:14.3819935Z         "unit"
2026-06-21T05:16:14.3820012Z       ],
2026-06-21T05:16:14.3820098Z       "stages": {
2026-06-21T05:16:14.3820178Z         "doc": {
2026-06-21T05:16:14.3820274Z           "complete": false,
2026-06-21T05:16:14.3820371Z           "evidence": []
2026-06-21T05:16:14.3820451Z         },
2026-06-21T05:16:14.3820535Z         "impl": {
2026-06-21T05:16:14.3820640Z           "complete": true,
2026-06-21T05:16:14.3820721Z           "evidence": [
2026-06-21T05:16:14.3820810Z             {
2026-06-21T05:16:14.3820947Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3821033Z               "line": 353
2026-06-21T05:16:14.3821115Z             },
2026-06-21T05:16:14.3821195Z             {
2026-06-21T05:16:14.3821310Z               "path": "crates/spt/src/picker/data.rs",
2026-06-21T05:16:14.3821397Z               "line": 105
2026-06-21T05:16:14.3821477Z             }
2026-06-21T05:16:14.3821552Z           ]
2026-06-21T05:16:14.3821635Z         },
2026-06-21T05:16:14.3821711Z         "int": {
2026-06-21T05:16:14.3821805Z           "complete": false,
2026-06-21T05:16:14.3821896Z           "evidence": []
2026-06-21T05:16:14.3821983Z         },
2026-06-21T05:16:14.3822068Z         "unit": {
2026-06-21T05:16:14.3822158Z           "complete": true,
2026-06-21T05:16:14.3822244Z           "evidence": [
2026-06-21T05:16:14.3822331Z             {
2026-06-21T05:16:14.3822459Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3822555Z               "line": 1246
2026-06-21T05:16:14.3822754Z             },
2026-06-21T05:16:14.3822835Z             {
2026-06-21T05:16:14.3822956Z               "path": "crates/spt/src/picker/data.rs",
2026-06-21T05:16:14.3823040Z               "line": 427
2026-06-21T05:16:14.3823127Z             }
2026-06-21T05:16:14.3823208Z           ]
2026-06-21T05:16:14.3823299Z         }
2026-06-21T05:16:14.3823384Z       }
2026-06-21T05:16:14.3823468Z     },
2026-06-21T05:16:14.3823550Z     {
2026-06-21T05:16:14.3823635Z       "id": "REQ-PICKER-5",
2026-06-21T05:16:14.3826605Z       "title": "`spt endpoint list` (bare/subnet view) renders an ALIGNED table with canonical node labels: cmd_endpoint_list prints subnet rows with `\\t` TAB separators (cli.rs:~1651-1662) so variable-width endpoint_ids snap fields to different tab-stops → a RAGGED status column (operator screenshot: X/help statuses misaligned vs rt-*/sptc-*/wall-a); and it calls the node renderer with no label → bare key-hex for every row (SAME ResourceRow-drops-node_label root as REQ-PICKER-4). FIX: max-width per-column padding (mirror render_node_rows' pad, pad by char count not byte len — '…' is multibyte) replacing the tabs, and render the node via the shared node_label_display now that ResourceRow carries node_label (REQ-PICKER-4). Extract a pure row-formatter seam so the alignment+label is unit-testable. ALSO: the bare list is the SUBNET view (a just-run LOCAL perch is invisible cross-subnet until the next advertise tick), so emit a `--local` hint line so a freshly-run endpoint isn't perceived as lost. (v0.10.0; operator-flagged + doyle dispatch 2026-06-17)",
2026-06-21T05:16:14.3826816Z       "requiredStages": [
2026-06-21T05:16:14.3826906Z         "impl",
2026-06-21T05:16:14.3826991Z         "unit"
2026-06-21T05:16:14.3827078Z       ],
2026-06-21T05:16:14.3827163Z       "stages": {
2026-06-21T05:16:14.3827254Z         "doc": {
2026-06-21T05:16:14.3827349Z           "complete": false,
2026-06-21T05:16:14.3827436Z           "evidence": []
2026-06-21T05:16:14.3827516Z         },
2026-06-21T05:16:14.3827611Z         "impl": {
2026-06-21T05:16:14.3827698Z           "complete": true,
2026-06-21T05:16:14.3827779Z           "evidence": [
2026-06-21T05:16:14.3827865Z             {
2026-06-21T05:16:14.3827965Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3828056Z               "line": 1802
2026-06-21T05:16:14.3828141Z             }
2026-06-21T05:16:14.3828226Z           ]
2026-06-21T05:16:14.3828313Z         },
2026-06-21T05:16:14.3828395Z         "int": {
2026-06-21T05:16:14.3828493Z           "complete": false,
2026-06-21T05:16:14.3828575Z           "evidence": []
2026-06-21T05:16:14.3828662Z         },
2026-06-21T05:16:14.3828743Z         "unit": {
2026-06-21T05:16:14.3828850Z           "complete": true,
2026-06-21T05:16:14.3829032Z           "evidence": [
2026-06-21T05:16:14.3829113Z             {
2026-06-21T05:16:14.3829217Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3829299Z               "line": 7526
2026-06-21T05:16:14.3829380Z             }
2026-06-21T05:16:14.3829461Z           ]
2026-06-21T05:16:14.3829556Z         }
2026-06-21T05:16:14.3829638Z       }
2026-06-21T05:16:14.3829718Z     },
2026-06-21T05:16:14.3829804Z     {
2026-06-21T05:16:14.3829909Z       "id": "REQ-PICKER-ADAPTER-DESCRIPTION",
2026-06-21T05:16:14.3831253Z       "title": "The Create-new adapter-CHOICE screen of `spt endpoint run`'s picker shows a right-hand Description panel (like the Pick-existing endpoint picker's two-pane) surfacing per-adapter detail: install date, last-updated, adapter TYPE / the endpoint types it hosts, and the adapter description — so the user can see WHAT each adapter is before choosing it (today the selector lists bare names). DEFERRED fast-follow to v0.12.0 (operator 2026-06-18). (post-v0.12.0)",
2026-06-21T05:16:14.3831360Z       "requiredStages": [],
2026-06-21T05:16:14.3831445Z       "stages": {
2026-06-21T05:16:14.3831527Z         "doc": {
2026-06-21T05:16:14.3831623Z           "complete": false,
2026-06-21T05:16:14.3831703Z           "evidence": []
2026-06-21T05:16:14.3831889Z         },
2026-06-21T05:16:14.3831985Z         "impl": {
2026-06-21T05:16:14.3832070Z           "complete": false,
2026-06-21T05:16:14.3832156Z           "evidence": []
2026-06-21T05:16:14.3832238Z         },
2026-06-21T05:16:14.3832323Z         "int": {
2026-06-21T05:16:14.3832418Z           "complete": false,
2026-06-21T05:16:14.3832510Z           "evidence": []
2026-06-21T05:16:14.3832609Z         },
2026-06-21T05:16:14.3832695Z         "unit": {
2026-06-21T05:16:14.3832781Z           "complete": false,
2026-06-21T05:16:14.3832867Z           "evidence": []
2026-06-21T05:16:14.3832952Z         }
2026-06-21T05:16:14.3833043Z       }
2026-06-21T05:16:14.3833215Z     },
2026-06-21T05:16:14.3833305Z     {
2026-06-21T05:16:14.3833405Z       "id": "REQ-PICKER-HISTORY-FRESH",
2026-06-21T05:16:14.3834500Z       "title": "The `spt endpoint run` picker shows project history for FRESH endpoints (operator-raised v0.12.0 real-harness finding). Symptom: a fresh endpoint shows no project history in the picker. ROOT TBD — investigate the project-history loader (v0.10.0 PICKER-2, picker/data.rs) before fixing: distinguish a real loader bug from 'fresh = no history yet' semantics. (v0.12.1)",
2026-06-21T05:16:14.3834613Z       "requiredStages": [
2026-06-21T05:16:14.3834699Z         "impl",
2026-06-21T05:16:14.3834785Z         "unit"
2026-06-21T05:16:14.3834876Z       ],
2026-06-21T05:16:14.3834961Z       "stages": {
2026-06-21T05:16:14.3835047Z         "doc": {
2026-06-21T05:16:14.3835138Z           "complete": false,
2026-06-21T05:16:14.3835233Z           "evidence": []
2026-06-21T05:16:14.3835308Z         },
2026-06-21T05:16:14.3835401Z         "impl": {
2026-06-21T05:16:14.3835505Z           "complete": true,
2026-06-21T05:16:14.3835586Z           "evidence": [
2026-06-21T05:16:14.3835667Z             {
2026-06-21T05:16:14.3835787Z               "path": "crates/spt/src/picker/data.rs",
2026-06-21T05:16:14.3835876Z               "line": 275
2026-06-21T05:16:14.3835958Z             }
2026-06-21T05:16:14.3836054Z           ]
2026-06-21T05:16:14.3836135Z         },
2026-06-21T05:16:14.3836220Z         "int": {
2026-06-21T05:16:14.3836311Z           "complete": false,
2026-06-21T05:16:14.3836393Z           "evidence": []
2026-06-21T05:16:14.3836482Z         },
2026-06-21T05:16:14.3836557Z         "unit": {
2026-06-21T05:16:14.3836653Z           "complete": true,
2026-06-21T05:16:14.3836748Z           "evidence": [
2026-06-21T05:16:14.3836837Z             {
2026-06-21T05:16:14.3836950Z               "path": "crates/spt/src/picker/data.rs",
2026-06-21T05:16:14.3837037Z               "line": 400
2026-06-21T05:16:14.3837128Z             }
2026-06-21T05:16:14.3837208Z           ]
2026-06-21T05:16:14.3837304Z         }
2026-06-21T05:16:14.3837386Z       }
2026-06-21T05:16:14.3837467Z     },
2026-06-21T05:16:14.3837556Z     {
2026-06-21T05:16:14.3837657Z       "id": "REQ-PICKER-ONLINE-ACTION",
2026-06-21T05:16:14.3839260Z       "title": "The `spt endpoint run` picker shows the correct action for an ALREADY-ONLINE endpoint — Attach, NOT 'Start now' (operator-raised v0.12.0 real-harness finding). Symptom: the picker offers 'Start now' for endpoints that are already online. ROOT TBD — investigate the status→action mapping (v0.10.0 PICKER-1 four-state status, picker/model.rs): is it reading live/online state correctly, or rendering stale/wedged broker state (i.e. partly a symptom of the broker wedge / status=online latch)? Fix so online → Attach. (v0.12.1)",
2026-06-21T05:16:14.3839373Z       "requiredStages": [
2026-06-21T05:16:14.3839449Z         "impl",
2026-06-21T05:16:14.3839539Z         "unit"
2026-06-21T05:16:14.3839621Z       ],
2026-06-21T05:16:14.3839716Z       "stages": {
2026-06-21T05:16:14.3839792Z         "doc": {
2026-06-21T05:16:14.3839887Z           "complete": false,
2026-06-21T05:16:14.3839978Z           "evidence": []
2026-06-21T05:16:14.3840063Z         },
2026-06-21T05:16:14.3840144Z         "impl": {
2026-06-21T05:16:14.3840227Z           "complete": true,
2026-06-21T05:16:14.3840322Z           "evidence": [
2026-06-21T05:16:14.3840503Z             {
2026-06-21T05:16:14.3840622Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T05:16:14.3840721Z               "line": 654
2026-06-21T05:16:14.3840818Z             }
2026-06-21T05:16:14.3840908Z           ]
2026-06-21T05:16:14.3840989Z         },
2026-06-21T05:16:14.3841079Z         "int": {
2026-06-21T05:16:14.3841190Z           "complete": false,
2026-06-21T05:16:14.3841279Z           "evidence": []
2026-06-21T05:16:14.3841360Z         },
2026-06-21T05:16:14.3841447Z         "unit": {
2026-06-21T05:16:14.3841552Z           "complete": true,
2026-06-21T05:16:14.3841641Z           "evidence": [
2026-06-21T05:16:14.3841841Z             {
2026-06-21T05:16:14.3841958Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T05:16:14.3842043Z               "line": 1078
2026-06-21T05:16:14.3842130Z             },
2026-06-21T05:16:14.3842212Z             {
2026-06-21T05:16:14.3842330Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T05:16:14.3842425Z               "line": 1092
2026-06-21T05:16:14.3842507Z             }
2026-06-21T05:16:14.3842578Z           ]
2026-06-21T05:16:14.3842659Z         }
2026-06-21T05:16:14.3842745Z       }
2026-06-21T05:16:14.3842831Z     },
2026-06-21T05:16:14.3842916Z     {
2026-06-21T05:16:14.3843016Z       "id": "REQ-PICKER-UX-V013",
2026-06-21T05:16:14.3844603Z       "title": "`spt endpoint run` picker UX (v0.13.0 operator dogfooding): (1) SKIP the first screen — open directly on 'Pick existing'; `n` jumps to 'Create new'. (2) AUTO-ATTACH after both Start-new AND Resume-from-history (both currently don't attach and show no stdout); add an `h` shortcut to run headless (no attach). (3) 'controlled by' shows the node NAME (node_label_display), not the raw hex. (4) Clean up Start-new output — drop the Rust `pid=Some(142748)` leak and the 'harness binds its perch on startup' internals; user-friendly, not a process log. (v0.13.0)",
2026-06-21T05:16:14.3844699Z       "requiredStages": [],
2026-06-21T05:16:14.3844788Z       "stages": {
2026-06-21T05:16:14.3844882Z         "doc": {
2026-06-21T05:16:14.3844968Z           "complete": false,
2026-06-21T05:16:14.3845064Z           "evidence": []
2026-06-21T05:16:14.3845145Z         },
2026-06-21T05:16:14.3845220Z         "impl": {
2026-06-21T05:16:14.3845317Z           "complete": false,
2026-06-21T05:16:14.3845393Z           "evidence": []
2026-06-21T05:16:14.3845474Z         },
2026-06-21T05:16:14.3845563Z         "int": {
2026-06-21T05:16:14.3845660Z           "complete": false,
2026-06-21T05:16:14.3845746Z           "evidence": []
2026-06-21T05:16:14.3845831Z         },
2026-06-21T05:16:14.3845922Z         "unit": {
2026-06-21T05:16:14.3846013Z           "complete": false,
2026-06-21T05:16:14.3846113Z           "evidence": []
2026-06-21T05:16:14.3846198Z         }
2026-06-21T05:16:14.3846286Z       }
2026-06-21T05:16:14.3846375Z     },
2026-06-21T05:16:14.3846461Z     {
2026-06-21T05:16:14.3846561Z       "id": "REQ-PRES-1",
2026-06-21T05:16:14.3847869Z       "title": "Presence resolution: the presence datum (last_active_node, last_active_endpoint, ts) gossiped subnet-wide via the agent-interaction heartbeat (rides registry distribution, visibility-gated) + one first-class most-recently-active resolution API consumed by notif first-fire, update-consent delivery, consent escalation, and shell wake resolution (M5 scope decision 1: resolution only — the PresenceChannel endpoint stays deferred)",
2026-06-21T05:16:14.3847979Z       "requiredStages": [
2026-06-21T05:16:14.3848069Z         "impl",
2026-06-21T05:16:14.3848155Z         "unit",
2026-06-21T05:16:14.3848241Z         "int"
2026-06-21T05:16:14.3848317Z       ],
2026-06-21T05:16:14.3848416Z       "stages": {
2026-06-21T05:16:14.3848499Z         "doc": {
2026-06-21T05:16:14.3848594Z           "complete": true,
2026-06-21T05:16:14.3848689Z           "evidence": [
2026-06-21T05:16:14.3848770Z             {
2026-06-21T05:16:14.3848876Z               "path": "docs/DEFERRED.md",
2026-06-21T05:16:14.3849051Z               "line": 11
2026-06-21T05:16:14.3849256Z             }
2026-06-21T05:16:14.3849343Z           ]
2026-06-21T05:16:14.3849448Z         },
2026-06-21T05:16:14.3849576Z         "impl": {
2026-06-21T05:16:14.3849672Z           "complete": true,
2026-06-21T05:16:14.3849758Z           "evidence": [
2026-06-21T05:16:14.3849839Z             {
2026-06-21T05:16:14.3849970Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-21T05:16:14.3850042Z               "line": 515
2026-06-21T05:16:14.3850128Z             },
2026-06-21T05:16:14.3850210Z             {
2026-06-21T05:16:14.3850332Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-21T05:16:14.3850505Z               "line": 567
2026-06-21T05:16:14.3850591Z             },
2026-06-21T05:16:14.3850681Z             {
2026-06-21T05:16:14.3850787Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T05:16:14.3850872Z               "line": 188
2026-06-21T05:16:14.3850957Z             },
2026-06-21T05:16:14.3851043Z             {
2026-06-21T05:16:14.3851168Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T05:16:14.3851249Z               "line": 214
2026-06-21T05:16:14.3851339Z             },
2026-06-21T05:16:14.3851412Z             {
2026-06-21T05:16:14.3851525Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-21T05:16:14.3851610Z               "line": 28
2026-06-21T05:16:14.3851698Z             },
2026-06-21T05:16:14.3851783Z             {
2026-06-21T05:16:14.3851887Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-21T05:16:14.3851978Z               "line": 105
2026-06-21T05:16:14.3852065Z             },
2026-06-21T05:16:14.3852150Z             {
2026-06-21T05:16:14.3852277Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-21T05:16:14.3852368Z               "line": 161
2026-06-21T05:16:14.3852453Z             },
2026-06-21T05:16:14.3852532Z             {
2026-06-21T05:16:14.3852657Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-21T05:16:14.3852757Z               "line": 180
2026-06-21T05:16:14.3852837Z             },
2026-06-21T05:16:14.3852928Z             {
2026-06-21T05:16:14.3853053Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.3853138Z               "line": 421
2026-06-21T05:16:14.3853224Z             },
2026-06-21T05:16:14.3853305Z             {
2026-06-21T05:16:14.3853434Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T05:16:14.3853519Z               "line": 289
2026-06-21T05:16:14.3853601Z             },
2026-06-21T05:16:14.3853687Z             {
2026-06-21T05:16:14.3853820Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T05:16:14.3853915Z               "line": 336
2026-06-21T05:16:14.3853997Z             },
2026-06-21T05:16:14.3854087Z             {
2026-06-21T05:16:14.3854206Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T05:16:14.3854303Z               "line": 362
2026-06-21T05:16:14.3854382Z             },
2026-06-21T05:16:14.3854473Z             {
2026-06-21T05:16:14.3854579Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3857821Z               "line": 100
2026-06-21T05:16:14.3857952Z             }
2026-06-21T05:16:14.3858037Z           ]
2026-06-21T05:16:14.3858119Z         },
2026-06-21T05:16:14.3858201Z         "int": {
2026-06-21T05:16:14.3858305Z           "complete": true,
2026-06-21T05:16:14.3858391Z           "evidence": [
2026-06-21T05:16:14.3858477Z             {
2026-06-21T05:16:14.3858629Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-21T05:16:14.3858715Z               "line": 563
2026-06-21T05:16:14.3858815Z             },
2026-06-21T05:16:14.3858901Z             {
2026-06-21T05:16:14.3859144Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.3859235Z               "line": 747
2026-06-21T05:16:14.3859325Z             },
2026-06-21T05:16:14.3859403Z             {
2026-06-21T05:16:14.3859535Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.3859793Z               "line": 1165
2026-06-21T05:16:14.3859878Z             }
2026-06-21T05:16:14.3859964Z           ]
2026-06-21T05:16:14.3860047Z         },
2026-06-21T05:16:14.3860127Z         "unit": {
2026-06-21T05:16:14.3860217Z           "complete": true,
2026-06-21T05:16:14.3860304Z           "evidence": [
2026-06-21T05:16:14.3860385Z             {
2026-06-21T05:16:14.3860507Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T05:16:14.3860597Z               "line": 674
2026-06-21T05:16:14.3860679Z             },
2026-06-21T05:16:14.3860765Z             {
2026-06-21T05:16:14.3860892Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-21T05:16:14.3861084Z               "line": 238
2026-06-21T05:16:14.3861160Z             },
2026-06-21T05:16:14.3861245Z             {
2026-06-21T05:16:14.3861371Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-21T05:16:14.3861457Z               "line": 269
2026-06-21T05:16:14.3861541Z             },
2026-06-21T05:16:14.3861628Z             {
2026-06-21T05:16:14.3861747Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-21T05:16:14.3861832Z               "line": 305
2026-06-21T05:16:14.3861918Z             },
2026-06-21T05:16:14.3862005Z             {
2026-06-21T05:16:14.3862124Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-21T05:16:14.3862214Z               "line": 336
2026-06-21T05:16:14.3862301Z             },
2026-06-21T05:16:14.3862386Z             {
2026-06-21T05:16:14.3862514Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.3862601Z               "line": 1217
2026-06-21T05:16:14.3862691Z             },
2026-06-21T05:16:14.3862785Z             {
2026-06-21T05:16:14.3862890Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.3862976Z               "line": 1163
2026-06-21T05:16:14.3863060Z             }
2026-06-21T05:16:14.3863154Z           ]
2026-06-21T05:16:14.3863236Z         }
2026-06-21T05:16:14.3863327Z       }
2026-06-21T05:16:14.3863417Z     },
2026-06-21T05:16:14.3863502Z     {
2026-06-21T05:16:14.3863594Z       "id": "REQ-RC-1",
2026-06-21T05:16:14.3865624Z       "title": "`spt rc <id>` — user CLI attaching a local terminal to a broker-held PTY, reusing the cross-node attach machinery (attach.rs request_attach → send_attach_input pump, spt-net AttachRecord codec); local attach is the degenerate single-node case of the cross-node path (rides REQ-TERM-3 byte-stream streaming). Read-only `--view` (watch, no stdin forwarded). Clean detach that does NOT terminate the broker-held session (KNOWN-HAZARDS: PTY ownership stays with the broker; no termination on detach). Explicit detach keybind that cannot collide with harness passthrough input (legacy capsule used a ctrl-b prefix); documented. ConPTY DSR auto-answer in the attach reader (hazard 5.5).",
2026-06-21T05:16:14.3865732Z       "requiredStages": [
2026-06-21T05:16:14.3865833Z         "impl",
2026-06-21T05:16:14.3865917Z         "unit",
2026-06-21T05:16:14.3866012Z         "int"
2026-06-21T05:16:14.3866093Z       ],
2026-06-21T05:16:14.3866189Z       "stages": {
2026-06-21T05:16:14.3866279Z         "doc": {
2026-06-21T05:16:14.3866374Z           "complete": false,
2026-06-21T05:16:14.3866476Z           "evidence": []
2026-06-21T05:16:14.3866557Z         },
2026-06-21T05:16:14.3866651Z         "impl": {
2026-06-21T05:16:14.3866742Z           "complete": true,
2026-06-21T05:16:14.3866837Z           "evidence": [
2026-06-21T05:16:14.3866927Z             {
2026-06-21T05:16:14.3867038Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T05:16:14.3867133Z               "line": 944
2026-06-21T05:16:14.3867214Z             },
2026-06-21T05:16:14.3867309Z             {
2026-06-21T05:16:14.3867430Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.3867519Z               "line": 1926
2026-06-21T05:16:14.3867605Z             },
2026-06-21T05:16:14.3867691Z             {
2026-06-21T05:16:14.3867905Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T05:16:14.3867987Z               "line": 967
2026-06-21T05:16:14.3868074Z             },
2026-06-21T05:16:14.3868162Z             {
2026-06-21T05:16:14.3868275Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T05:16:14.3868376Z               "line": 1001
2026-06-21T05:16:14.3868461Z             },
2026-06-21T05:16:14.3868551Z             {
2026-06-21T05:16:14.3868650Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.3868751Z               "line": 22
2026-06-21T05:16:14.3868836Z             },
2026-06-21T05:16:14.3868921Z             {
2026-06-21T05:16:14.3869113Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.3869319Z               "line": 701
2026-06-21T05:16:14.3869409Z             }
2026-06-21T05:16:14.3869490Z           ]
2026-06-21T05:16:14.3869580Z         },
2026-06-21T05:16:14.3869667Z         "int": {
2026-06-21T05:16:14.3869762Z           "complete": true,
2026-06-21T05:16:14.3869871Z           "evidence": [
2026-06-21T05:16:14.3869953Z             {
2026-06-21T05:16:14.3870081Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T05:16:14.3870167Z               "line": 258
2026-06-21T05:16:14.3870253Z             },
2026-06-21T05:16:14.3870339Z             {
2026-06-21T05:16:14.3870463Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T05:16:14.3870549Z               "line": 285
2026-06-21T05:16:14.3870621Z             },
2026-06-21T05:16:14.3870710Z             {
2026-06-21T05:16:14.3870816Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T05:16:14.3870902Z               "line": 413
2026-06-21T05:16:14.3870988Z             }
2026-06-21T05:16:14.3871067Z           ]
2026-06-21T05:16:14.3871157Z         },
2026-06-21T05:16:14.3871234Z         "unit": {
2026-06-21T05:16:14.3871320Z           "complete": true,
2026-06-21T05:16:14.3871411Z           "evidence": [
2026-06-21T05:16:14.3871491Z             {
2026-06-21T05:16:14.3871611Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T05:16:14.3871702Z               "line": 1327
2026-06-21T05:16:14.3871791Z             },
2026-06-21T05:16:14.3871879Z             {
2026-06-21T05:16:14.3871987Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.3872068Z               "line": 1133
2026-06-21T05:16:14.3872149Z             },
2026-06-21T05:16:14.3872241Z             {
2026-06-21T05:16:14.3872345Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.3872435Z               "line": 1162
2026-06-21T05:16:14.3872518Z             },
2026-06-21T05:16:14.3872603Z             {
2026-06-21T05:16:14.3872707Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.3872808Z               "line": 1175
2026-06-21T05:16:14.3872894Z             }
2026-06-21T05:16:14.3872974Z           ]
2026-06-21T05:16:14.3873060Z         }
2026-06-21T05:16:14.3873142Z       }
2026-06-21T05:16:14.3873232Z     },
2026-06-21T05:16:14.3873317Z     {
2026-06-21T05:16:14.3873435Z       "id": "REQ-RC-KEY-VT-TRANSLATE",
2026-06-21T05:16:14.3879239Z       "title": "On Windows, `spt rc` translates CONSOLE KEY EVENTS to standard xterm VT so ALL keys reach the hosted harness — arrows/Home/End/PgUp/PgDn/Insert/Delete/F-keys, every modifier combo, Backspace/Ctrl+Backspace — not just the byte-emitting ones. ROOT (operator HITL, doyle /diagnose): `spt rc` reads raw STDIN BYTES (spawn_stdin_reader, std::io::stdin().read); on the Windows LEGACY console (no ENABLE_VIRTUAL_TERMINAL_INPUT) the special keys produce console KEY_EVENTs, NOT stdin bytes, so the byte-pump sees nothing → those keys are DEAD. Enabling ENABLE_VIRTUAL_TERMINAL_INPUT was rejected (W7 dc07c39): on Windows Terminal it yields harness-specific win32-input-mode + broke ctrl-b detach. FIX (agnostic, full fidelity): on Windows, replace the stdin byte-read with a crossterm EVENT source (crossterm 0.28 already a dep; the picker already reads events) and translate each KeyEvent → STANDARD xterm VT bytes via a PURE translate_key_event(KeyEvent)->Vec<u8> (copy a known-correct xterm table verbatim, ADR-0001 spirit), forwarded through the SAME rc pump — the harness receives ordinary xterm VT (harness-AGNOSTIC, no win32-input-mode). Press-only (drop Repeat/Release). Detach stays the ctrl-b+'d' PREFIX, event-sourced (doyle Option B): Ctrl+B arms; armed+plain-'d'⇒Detach; armed+Ctrl+B⇒emit literal 0x02; armed+other⇒0x02 then translate(other). Non-tty stdin (piped/tests) → FALL BACK to the byte-read path (keeps e2e byte-injection working). UNIX UNCHANGED (its raw-mode byte stream already delivers proper VT; cfg-split, zero Unix regression). SUPERSEDES the W7 normalize_key_byte swap on Windows — the translator emits 0x7f for Backspace and 0x08 for Ctrl+Backspace natively (REQ-HAZARD-RC-INPUT-KEY-ENCODING folded in). NO int (a live interactive console can't be driven in CI — HITL, REQ-RUN-PICKER/RC-1 precedent); the exhaustive non-vacuous translate_key_event mapping unit + the event-detach unit ARE the surface. (v0.13.0)",
2026-06-21T05:16:14.3879588Z       "requiredStages": [
2026-06-21T05:16:14.3879678Z         "doc",
2026-06-21T05:16:14.3879763Z         "impl",
2026-06-21T05:16:14.3879845Z         "unit"
2026-06-21T05:16:14.3879926Z       ],
2026-06-21T05:16:14.3880012Z       "stages": {
2026-06-21T05:16:14.3880102Z         "doc": {
2026-06-21T05:16:14.3880199Z           "complete": true,
2026-06-21T05:16:14.3880293Z           "evidence": [
2026-06-21T05:16:14.3880374Z             {
2026-06-21T05:16:14.3880464Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.3880565Z               "line": 345
2026-06-21T05:16:14.3880636Z             },
2026-06-21T05:16:14.3880722Z             {
2026-06-21T05:16:14.3880833Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T05:16:14.3880932Z               "line": 440
2026-06-21T05:16:14.3881018Z             }
2026-06-21T05:16:14.3881094Z           ]
2026-06-21T05:16:14.3881177Z         },
2026-06-21T05:16:14.3881265Z         "impl": {
2026-06-21T05:16:14.3881361Z           "complete": true,
2026-06-21T05:16:14.3881457Z           "evidence": [
2026-06-21T05:16:14.3881538Z             {
2026-06-21T05:16:14.3881642Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.3881731Z               "line": 226
2026-06-21T05:16:14.3881814Z             },
2026-06-21T05:16:14.3881895Z             {
2026-06-21T05:16:14.3882004Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.3882094Z               "line": 285
2026-06-21T05:16:14.3882171Z             },
2026-06-21T05:16:14.3882248Z             {
2026-06-21T05:16:14.3882351Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.3882444Z               "line": 300
2026-06-21T05:16:14.3882538Z             },
2026-06-21T05:16:14.3882628Z             {
2026-06-21T05:16:14.3882728Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.3882819Z               "line": 315
2026-06-21T05:16:14.3882910Z             },
2026-06-21T05:16:14.3882995Z             {
2026-06-21T05:16:14.3883097Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.3883186Z               "line": 364
2026-06-21T05:16:14.3883277Z             }
2026-06-21T05:16:14.3883358Z           ]
2026-06-21T05:16:14.3883449Z         },
2026-06-21T05:16:14.3883539Z         "int": {
2026-06-21T05:16:14.3883629Z           "complete": false,
2026-06-21T05:16:14.3883722Z           "evidence": []
2026-06-21T05:16:14.3883797Z         },
2026-06-21T05:16:14.3883882Z         "unit": {
2026-06-21T05:16:14.3883967Z           "complete": true,
2026-06-21T05:16:14.3884053Z           "evidence": [
2026-06-21T05:16:14.3884138Z             {
2026-06-21T05:16:14.3884241Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.3884337Z               "line": 1190
2026-06-21T05:16:14.3884424Z             },
2026-06-21T05:16:14.3884518Z             {
2026-06-21T05:16:14.3884623Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.3884724Z               "line": 1305
2026-06-21T05:16:14.3884814Z             }
2026-06-21T05:16:14.3884899Z           ]
2026-06-21T05:16:14.3885067Z         }
2026-06-21T05:16:14.3885152Z       }
2026-06-21T05:16:14.3885233Z     },
2026-06-21T05:16:14.3885320Z     {
2026-06-21T05:16:14.3885424Z       "id": "REQ-RC-MOUSE-FORWARD",
2026-06-21T05:16:14.3889746Z       "title": "On Windows, `spt rc` must FORWARD scroll-wheel events to the harness when the harness has mouse reporting on. ROOT (operator HITL): P1's RawGuard EnableMouseCapture (added for right-click paste, REQ-RC-WIN-PASTE) makes Windows Terminal forward ALL mouse — including the scroll wheel — to rc instead of scrolling its own buffer, but the rc mouse handler dropped everything except right-button-down → scroll DIED (and WT's native scrollback is stolen by the capture). Operator ruling: keep mouse capture + right-click bracketed paste AND forward scroll to the harness. FIX (doyle design, cfg(windows), folds into the rc mouse handler): TRACK the harness's mouse-reporting mode by scanning its OUTPUT stream for the DECSET set/reset — ESC[?1000h/1002h/1003h (mouse on) + ESC[?1006h (SGR ext) and their ...l (off) — into a shared MouseMode{enabled,sgr} (pump writes from output, stdin reader reads); the scan survives a sequence SPLIT across output chunks (a bounded carry buffer). The mouse handler: right-button-DOWN -> bracketed clipboard paste (unchanged, REQ-RC-WIN-PASTE); ScrollUp/Down -> translate to an xterm SGR mouse report (ESC[<64;col+1;row+1M up / ESC[<65;..M down, 0-based crossterm -> 1-based xterm) and forward ONLY when enabled && sgr (else DROP — a legacy X10 report the harness may not parse is garbage); Moved/drag/left/middle -> DROP (scroll is the operator's need; click-forward risks garbage, no click-to-position). Unix UNCHANGED (no capture; the terminal scrolls natively). (v0.13.0)",
2026-06-21T05:16:14.3889990Z       "requiredStages": [
2026-06-21T05:16:14.3890071Z         "doc",
2026-06-21T05:16:14.3890153Z         "impl",
2026-06-21T05:16:14.3890248Z         "unit"
2026-06-21T05:16:14.3890328Z       ],
2026-06-21T05:16:14.3890410Z       "stages": {
2026-06-21T05:16:14.3890505Z         "doc": {
2026-06-21T05:16:14.3890600Z           "complete": true,
2026-06-21T05:16:14.3890686Z           "evidence": [
2026-06-21T05:16:14.3890768Z             {
2026-06-21T05:16:14.3890877Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T05:16:14.3890962Z               "line": 461
2026-06-21T05:16:14.3891049Z             }
2026-06-21T05:16:14.3891135Z           ]
2026-06-21T05:16:14.3891221Z         },
2026-06-21T05:16:14.3891311Z         "impl": {
2026-06-21T05:16:14.3891407Z           "complete": true,
2026-06-21T05:16:14.3891496Z           "evidence": [
2026-06-21T05:16:14.3891564Z             {
2026-06-21T05:16:14.3891664Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.3891756Z               "line": 421
2026-06-21T05:16:14.3891844Z             },
2026-06-21T05:16:14.3891931Z             {
2026-06-21T05:16:14.3892037Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.3892131Z               "line": 437
2026-06-21T05:16:14.3892216Z             }
2026-06-21T05:16:14.3892306Z           ]
2026-06-21T05:16:14.3892388Z         },
2026-06-21T05:16:14.3892479Z         "int": {
2026-06-21T05:16:14.3892564Z           "complete": false,
2026-06-21T05:16:14.3892659Z           "evidence": []
2026-06-21T05:16:14.3892746Z         },
2026-06-21T05:16:14.3892831Z         "unit": {
2026-06-21T05:16:14.3892925Z           "complete": true,
2026-06-21T05:16:14.3893013Z           "evidence": [
2026-06-21T05:16:14.3893098Z             {
2026-06-21T05:16:14.3893203Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.3893298Z               "line": 1440
2026-06-21T05:16:14.3893379Z             },
2026-06-21T05:16:14.3893470Z             {
2026-06-21T05:16:14.3893574Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.3893657Z               "line": 1459
2026-06-21T05:16:14.3893742Z             },
2026-06-21T05:16:14.3893827Z             {
2026-06-21T05:16:14.3893938Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.3894132Z               "line": 1471
2026-06-21T05:16:14.3894219Z             },
2026-06-21T05:16:14.3894296Z             {
2026-06-21T05:16:14.3894394Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.3894484Z               "line": 1499
2026-06-21T05:16:14.3894565Z             }
2026-06-21T05:16:14.3894656Z           ]
2026-06-21T05:16:14.3894745Z         }
2026-06-21T05:16:14.3894830Z       }
2026-06-21T05:16:14.3894921Z     },
2026-06-21T05:16:14.3895007Z     {
2026-06-21T05:16:14.3895107Z       "id": "REQ-RC-WIN-PASTE",
2026-06-21T05:16:14.3899792Z       "title": "In an `spt rc` session neither ctrl+V nor right-click pastes (CC explicitly supports ctrl+V). ROOT (doyle /diagnose): RawGuard does only enable_raw_mode (no bracketed paste / no mouse capture / no clipboard interception); the Windows console delivers a paste as synthetic per-char KEY EVENTs (no crossterm Event::Paste), and ctrl+V translates to bare ^V forwarded to CC — but CC runs DAEMON-SIDE with NO access to the operator's LOCAL clipboard, so remote paste is fundamentally CLIENT-ORIGINATED. A multi-line paste-as-keys also becomes a \\r submit-storm. FIX (doyle design, V0.13.0-P1-RC-PASTE-DESIGN.md, cfg(windows), folds into the bug-2 event path): on a paste gesture rc reads the LOCAL clipboard + forwards a BRACKETED PASTE (ESC[200~ + content + ESC[201~); CC has bracketed-paste mode on (its TUI sets ESC[?2004h) so it treats it as a paste — content intact, no submit-storm, harness-AGNOSTIC. ctrl+V: intercept Char('v')+CONTROL in the event loop -> read_clipboard -> bracketed paste. Right-click: RawGuard also EnableMouseCapture (disables console QuickEdit + enables ENABLE_MOUSE_INPUT so right-click surfaces as Event::Mouse on legacy cmd/powershell) -> right-button -> read_clipboard -> bracketed paste; DROP all other mouse (CC has no mouse features, operator-confirmed, so capture costs nothing). read_clipboard = clipboard-win crate (cfg(windows), minimal); empty/failed = clean no-op. Content forwarded VERBATIM (literal pasted text, no per-char translation). Unix UNCHANGED (its terminal pastes natively through the byte pump). DEPENDS ON P0 (a paste chunk must not wedge the broker). (v0.13.0)",
2026-06-21T05:16:14.3900019Z       "requiredStages": [
2026-06-21T05:16:14.3900109Z         "doc",
2026-06-21T05:16:14.3900188Z         "impl",
2026-06-21T05:16:14.3900269Z         "unit"
2026-06-21T05:16:14.3900355Z       ],
2026-06-21T05:16:14.3900441Z       "stages": {
2026-06-21T05:16:14.3900531Z         "doc": {
2026-06-21T05:16:14.3900616Z           "complete": true,
2026-06-21T05:16:14.3900699Z           "evidence": [
2026-06-21T05:16:14.3900784Z             {
2026-06-21T05:16:14.3900903Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-21T05:16:14.3900994Z               "line": 447
2026-06-21T05:16:14.3901075Z             }
2026-06-21T05:16:14.3901161Z           ]
2026-06-21T05:16:14.3901246Z         },
2026-06-21T05:16:14.3901333Z         "impl": {
2026-06-21T05:16:14.3901413Z           "complete": true,
2026-06-21T05:16:14.3901508Z           "evidence": [
2026-06-21T05:16:14.3901589Z             {
2026-06-21T05:16:14.3901696Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.3901795Z               "line": 395
2026-06-21T05:16:14.3901871Z             },
2026-06-21T05:16:14.3901953Z             {
2026-06-21T05:16:14.3902052Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.3902147Z               "line": 411
2026-06-21T05:16:14.3902229Z             },
2026-06-21T05:16:14.3902321Z             {
2026-06-21T05:16:14.3902428Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.3902520Z               "line": 454
2026-06-21T05:16:14.3902607Z             },
2026-06-21T05:16:14.3902691Z             {
2026-06-21T05:16:14.3902795Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.3902876Z               "line": 468
2026-06-21T05:16:14.3902962Z             },
2026-06-21T05:16:14.3903048Z             {
2026-06-21T05:16:14.3903152Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.3903349Z               "line": 479
2026-06-21T05:16:14.3903424Z             }
2026-06-21T05:16:14.3903510Z           ]
2026-06-21T05:16:14.3903602Z         },
2026-06-21T05:16:14.3903683Z         "int": {
2026-06-21T05:16:14.3903772Z           "complete": false,
2026-06-21T05:16:14.3903863Z           "evidence": []
2026-06-21T05:16:14.3903949Z         },
2026-06-21T05:16:14.3904035Z         "unit": {
2026-06-21T05:16:14.3904134Z           "complete": true,
2026-06-21T05:16:14.3904222Z           "evidence": [
2026-06-21T05:16:14.3904316Z             {
2026-06-21T05:16:14.3904416Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.3904508Z               "line": 1381
2026-06-21T05:16:14.3904678Z             },
2026-06-21T05:16:14.3904759Z             {
2026-06-21T05:16:14.3904866Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.3904959Z               "line": 1402
2026-06-21T05:16:14.3905040Z             },
2026-06-21T05:16:14.3905121Z             {
2026-06-21T05:16:14.3905225Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.3905338Z               "line": 1423
2026-06-21T05:16:14.3905414Z             }
2026-06-21T05:16:14.3905501Z           ]
2026-06-21T05:16:14.3905592Z         }
2026-06-21T05:16:14.3905681Z       }
2026-06-21T05:16:14.3905762Z     },
2026-06-21T05:16:14.3905849Z     {
2026-06-21T05:16:14.3905953Z       "id": "REQ-RCVIEW-1",
2026-06-21T05:16:14.3910408Z       "title": "Remote-attach controller/viewer model (CONTEXT.md:317): a session's broker OutputLog serves ONE interactive controller (input + EXCLUSIVE PTY resize; its viewport sets the size, sent on attach + every window change via crossterm Event::Resize) plus ANY NUMBER of read-only `--view` attachers (output-only, no input, no resize; client-side letterbox — center+pad when larger, clip+1-line indicator when smaller; only the local ctrl-b d detach chord). Attach intent is three-valued (`Viewer | Control | Take`, wire-default Control): Control to a FREE endpoint becomes controller, Control to a CONTROLLED endpoint is REFUSED with guidance (`--view`/`--take`) — never auto-viewer, never silent-displace. Wire adds (additive, N-1 skip-unknown): `Request.intent`, `Resize{rows,cols}` (controller-only), `Size{rows,cols}` (→viewer), `Displaced{by}` (→displaced controller). The brain-resume cursor (delivered_through, ADR-0018) tracks the CONTROLLER ONLY; viewers replay from their own from_seq and never move it. Dormancy keys on the controller ONLY: controller attach wakes / controller detach goes dormant (even with viewers present); viewer attach/detach is wake-neutral and may watch a dormant endpoint as-is. v1: viewing is gated identically to driving — a viewer runs the same access_check(Unsolicited) as a controller (watching reveals full session contents = a real disclosure); a lighter distinct watch-gate is deferred to cross-subnet/finer-consent (CONTEXT.md:317 'driving ≠ watching' = the future seam).",
2026-06-21T05:16:14.3910535Z       "requiredStages": [
2026-06-21T05:16:14.3910621Z         "doc",
2026-06-21T05:16:14.3910716Z         "impl",
2026-06-21T05:16:14.3910800Z         "unit",
2026-06-21T05:16:14.3910886Z         "int"
2026-06-21T05:16:14.3910978Z       ],
2026-06-21T05:16:14.3911054Z       "stages": {
2026-06-21T05:16:14.3911148Z         "doc": {
2026-06-21T05:16:14.3911249Z           "complete": true,
2026-06-21T05:16:14.3911339Z           "evidence": [
2026-06-21T05:16:14.3911425Z             {
2026-06-21T05:16:14.3911525Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.3911621Z               "line": 342
2026-06-21T05:16:14.3911697Z             }
2026-06-21T05:16:14.3911782Z           ]
2026-06-21T05:16:14.3911879Z         },
2026-06-21T05:16:14.3911960Z         "impl": {
2026-06-21T05:16:14.3912045Z           "complete": true,
2026-06-21T05:16:14.3912131Z           "evidence": [
2026-06-21T05:16:14.3912213Z             {
2026-06-21T05:16:14.3912336Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-21T05:16:14.3912431Z               "line": 354
2026-06-21T05:16:14.3912636Z             },
2026-06-21T05:16:14.3912721Z             {
2026-06-21T05:16:14.3912847Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.3912937Z               "line": 574
2026-06-21T05:16:14.3913032Z             },
2026-06-21T05:16:14.3913114Z             {
2026-06-21T05:16:14.3913233Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.3913322Z               "line": 585
2026-06-21T05:16:14.3913402Z             },
2026-06-21T05:16:14.3913489Z             {
2026-06-21T05:16:14.3913604Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-21T05:16:14.3913698Z               "line": 41
2026-06-21T05:16:14.3913875Z             },
2026-06-21T05:16:14.3913965Z             {
2026-06-21T05:16:14.3914085Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-21T05:16:14.3914171Z               "line": 62
2026-06-21T05:16:14.3914257Z             },
2026-06-21T05:16:14.3914342Z             {
2026-06-21T05:16:14.3914462Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T05:16:14.3914552Z               "line": 309
2026-06-21T05:16:14.3914647Z             },
2026-06-21T05:16:14.3914724Z             {
2026-06-21T05:16:14.3914834Z               "path": "crates/spt/src/rc.rs",
2026-06-21T05:16:14.3914919Z               "line": 701
2026-06-21T05:16:14.3915005Z             }
2026-06-21T05:16:14.3915092Z           ]
2026-06-21T05:16:14.3915177Z         },
2026-06-21T05:16:14.3915272Z         "int": {
2026-06-21T05:16:14.3915368Z           "complete": true,
2026-06-21T05:16:14.3915459Z           "evidence": [
2026-06-21T05:16:14.3915543Z             {
2026-06-21T05:16:14.3915666Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T05:16:14.3915767Z               "line": 913
2026-06-21T05:16:14.3915851Z             },
2026-06-21T05:16:14.3915941Z             {
2026-06-21T05:16:14.3916070Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T05:16:14.3916156Z               "line": 953
2026-06-21T05:16:14.3916256Z             },
2026-06-21T05:16:14.3916337Z             {
2026-06-21T05:16:14.3916461Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T05:16:14.3916561Z               "line": 1000
2026-06-21T05:16:14.3916647Z             },
2026-06-21T05:16:14.3916743Z             {
2026-06-21T05:16:14.3916856Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T05:16:14.3916957Z               "line": 1112
2026-06-21T05:16:14.3917038Z             }
2026-06-21T05:16:14.3917133Z           ]
2026-06-21T05:16:14.3917223Z         },
2026-06-21T05:16:14.3917310Z         "unit": {
2026-06-21T05:16:14.3917409Z           "complete": true,
2026-06-21T05:16:14.3917505Z           "evidence": [
2026-06-21T05:16:14.3917586Z             {
2026-06-21T05:16:14.3917701Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-21T05:16:14.3917800Z               "line": 175
2026-06-21T05:16:14.3917896Z             },
2026-06-21T05:16:14.3917983Z             {
2026-06-21T05:16:14.3918101Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-21T05:16:14.3918196Z               "line": 195
2026-06-21T05:16:14.3918284Z             }
2026-06-21T05:16:14.3918368Z           ]
2026-06-21T05:16:14.3918458Z         }
2026-06-21T05:16:14.3918553Z       }
2026-06-21T05:16:14.3918639Z     },
2026-06-21T05:16:14.3918727Z     {
2026-06-21T05:16:14.3918817Z       "id": "REQ-REACH-1",
2026-06-21T05:16:14.3919127Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-21T05:16:14.3919223Z       "requiredStages": [
2026-06-21T05:16:14.3919314Z         "impl",
2026-06-21T05:16:14.3919404Z         "unit",
2026-06-21T05:16:14.3919484Z         "int"
2026-06-21T05:16:14.3919572Z       ],
2026-06-21T05:16:14.3919662Z       "stages": {
2026-06-21T05:16:14.3919742Z         "doc": {
2026-06-21T05:16:14.3919834Z           "complete": false,
2026-06-21T05:16:14.3919939Z           "evidence": []
2026-06-21T05:16:14.3920019Z         },
2026-06-21T05:16:14.3920105Z         "impl": {
2026-06-21T05:16:14.3920334Z           "complete": true,
2026-06-21T05:16:14.3920424Z           "evidence": [
2026-06-21T05:16:14.3920517Z             {
2026-06-21T05:16:14.3920634Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.3920730Z               "line": 574
2026-06-21T05:16:14.3920812Z             },
2026-06-21T05:16:14.3920897Z             {
2026-06-21T05:16:14.3921019Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-21T05:16:14.3921114Z               "line": 76
2026-06-21T05:16:14.3921205Z             },
2026-06-21T05:16:14.3921285Z             {
2026-06-21T05:16:14.3921398Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-21T05:16:14.3921591Z               "line": 222
2026-06-21T05:16:14.3921675Z             },
2026-06-21T05:16:14.3921761Z             {
2026-06-21T05:16:14.3921872Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-21T05:16:14.3921957Z               "line": 422
2026-06-21T05:16:14.3922042Z             },
2026-06-21T05:16:14.3922138Z             {
2026-06-21T05:16:14.3922248Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-21T05:16:14.3922337Z               "line": 529
2026-06-21T05:16:14.3922425Z             },
2026-06-21T05:16:14.3922510Z             {
2026-06-21T05:16:14.3922629Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-21T05:16:14.3922715Z               "line": 39
2026-06-21T05:16:14.3922792Z             },
2026-06-21T05:16:14.3922872Z             {
2026-06-21T05:16:14.3922986Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T05:16:14.3923074Z               "line": 301
2026-06-21T05:16:14.3923159Z             },
2026-06-21T05:16:14.3923249Z             {
2026-06-21T05:16:14.3923354Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-21T05:16:14.3923450Z               "line": 88
2026-06-21T05:16:14.3923534Z             },
2026-06-21T05:16:14.3923620Z             {
2026-06-21T05:16:14.3923727Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-21T05:16:14.3923821Z               "line": 98
2026-06-21T05:16:14.3923910Z             },
2026-06-21T05:16:14.3923996Z             {
2026-06-21T05:16:14.3924126Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.3924215Z               "line": 233
2026-06-21T05:16:14.3924292Z             }
2026-06-21T05:16:14.3924373Z           ]
2026-06-21T05:16:14.3924459Z         },
2026-06-21T05:16:14.3924554Z         "int": {
2026-06-21T05:16:14.3924640Z           "complete": true,
2026-06-21T05:16:14.3924732Z           "evidence": [
2026-06-21T05:16:14.3924822Z             {
2026-06-21T05:16:14.3924945Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-21T05:16:14.3925037Z               "line": 415
2026-06-21T05:16:14.3925126Z             },
2026-06-21T05:16:14.3925216Z             {
2026-06-21T05:16:14.3925342Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-21T05:16:14.3925431Z               "line": 520
2026-06-21T05:16:14.3925522Z             },
2026-06-21T05:16:14.3925614Z             {
2026-06-21T05:16:14.3925737Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.3925822Z               "line": 998
2026-06-21T05:16:14.3925923Z             },
2026-06-21T05:16:14.3926010Z             {
2026-06-21T05:16:14.3926136Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.3926241Z               "line": 1383
2026-06-21T05:16:14.3926327Z             }
2026-06-21T05:16:14.3926420Z           ]
2026-06-21T05:16:14.3926510Z         },
2026-06-21T05:16:14.3926601Z         "unit": {
2026-06-21T05:16:14.3926693Z           "complete": true,
2026-06-21T05:16:14.3926787Z           "evidence": [
2026-06-21T05:16:14.3926883Z             {
2026-06-21T05:16:14.3926993Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-21T05:16:14.3927087Z               "line": 639
2026-06-21T05:16:14.3927173Z             },
2026-06-21T05:16:14.3927260Z             {
2026-06-21T05:16:14.3927379Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-21T05:16:14.3927551Z               "line": 660
2026-06-21T05:16:14.3927636Z             },
2026-06-21T05:16:14.3927721Z             {
2026-06-21T05:16:14.3927846Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-21T05:16:14.3927937Z               "line": 768
2026-06-21T05:16:14.3928027Z             },
2026-06-21T05:16:14.3928108Z             {
2026-06-21T05:16:14.3928224Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-21T05:16:14.3928322Z               "line": 93
2026-06-21T05:16:14.3928408Z             },
2026-06-21T05:16:14.3928495Z             {
2026-06-21T05:16:14.3928609Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-21T05:16:14.3928776Z               "line": 224
2026-06-21T05:16:14.3928863Z             },
2026-06-21T05:16:14.3929032Z             {
2026-06-21T05:16:14.3929151Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-21T05:16:14.3929231Z               "line": 96
2026-06-21T05:16:14.3929325Z             },
2026-06-21T05:16:14.3929415Z             {
2026-06-21T05:16:14.3929531Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-21T05:16:14.3929616Z               "line": 146
2026-06-21T05:16:14.3929702Z             },
2026-06-21T05:16:14.3929793Z             {
2026-06-21T05:16:14.3929888Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T05:16:14.3929973Z               "line": 698
2026-06-21T05:16:14.3930059Z             },
2026-06-21T05:16:14.3930151Z             {
2026-06-21T05:16:14.3930270Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-21T05:16:14.3930350Z               "line": 118
2026-06-21T05:16:14.3930442Z             },
2026-06-21T05:16:14.3930532Z             {
2026-06-21T05:16:14.3930646Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-21T05:16:14.3930737Z               "line": 148
2026-06-21T05:16:14.3930823Z             },
2026-06-21T05:16:14.3930908Z             {
2026-06-21T05:16:14.3931028Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.3931128Z               "line": 928
2026-06-21T05:16:14.3931213Z             }
2026-06-21T05:16:14.3931300Z           ]
2026-06-21T05:16:14.3931386Z         }
2026-06-21T05:16:14.3931477Z       }
2026-06-21T05:16:14.3931570Z     },
2026-06-21T05:16:14.3931656Z     {
2026-06-21T05:16:14.3931756Z       "id": "REQ-REACH-2",
2026-06-21T05:16:14.3931911Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-21T05:16:14.3932016Z       "requiredStages": [],
2026-06-21T05:16:14.3932098Z       "stages": {
2026-06-21T05:16:14.3932197Z         "doc": {
2026-06-21T05:16:14.3932287Z           "complete": false,
2026-06-21T05:16:14.3932384Z           "evidence": []
2026-06-21T05:16:14.3932479Z         },
2026-06-21T05:16:14.3932564Z         "impl": {
2026-06-21T05:16:14.3932703Z           "complete": false,
2026-06-21T05:16:14.3932793Z           "evidence": []
2026-06-21T05:16:14.3932888Z         },
2026-06-21T05:16:14.3932985Z         "int": {
2026-06-21T05:16:14.3933080Z           "complete": false,
2026-06-21T05:16:14.3933189Z           "evidence": []
2026-06-21T05:16:14.3933275Z         },
2026-06-21T05:16:14.3933362Z         "unit": {
2026-06-21T05:16:14.3933451Z           "complete": false,
2026-06-21T05:16:14.3933556Z           "evidence": []
2026-06-21T05:16:14.3933639Z         }
2026-06-21T05:16:14.3933723Z       }
2026-06-21T05:16:14.3933819Z     },
2026-06-21T05:16:14.3933910Z     {
2026-06-21T05:16:14.3934024Z       "id": "REQ-READY-AGENT-RESUME",
2026-06-21T05:16:14.3937447Z       "title": "An offline ReadyAgent shows in `spt endpoint run`'s picker Resume-from-history and resumes correctly — closing the gap that today only LiveAgents do. ROOT: a harness-hosted ready bind (ReadyAgent::start_homed, ready.rs) writes info.json DIRECTLY and never appends the session ledger (unlike the shared establish_perch:250 live path), so a ready agent — though it has a session_id — produces ZERO ledger rows → the picker's offline+local Resume-from-history (which gates on ledger rows) never offers it. FIX (1): ledger the ready bind (ReadyAgent::start_homed → sessions::append Boot, mirroring establish_perch). FIX (2): `spt endpoint run --resume <session>` honors the adapter MANIFEST's endpoint TYPE — a ReadyAgent manifest (no [session.psyche_init]) resumes as a ready endpoint (poll listener, NO psyche-host); a LiveAgent (with psyche_init) as live. NO new bringup mode + NO picker changes (operator 2026-06-18): `spt endpoint run` is the spt-hosted ENDPOINT bringup for BOTH types, the type IS the adapter-manifest's concern (psyche-host already keys on psyche_init presence) — so (2) likely already holds; VERIFY at code, build only the residual. (v0.12.0)",
2026-06-21T05:16:14.3937777Z       "requiredStages": [
2026-06-21T05:16:14.3937858Z         "doc",
2026-06-21T05:16:14.3937944Z         "impl",
2026-06-21T05:16:14.3938038Z         "unit",
2026-06-21T05:16:14.3938116Z         "int"
2026-06-21T05:16:14.3938201Z       ],
2026-06-21T05:16:14.3938287Z       "stages": {
2026-06-21T05:16:14.3938377Z         "doc": {
2026-06-21T05:16:14.3938483Z           "complete": true,
2026-06-21T05:16:14.3938573Z           "evidence": [
2026-06-21T05:16:14.3938658Z             {
2026-06-21T05:16:14.3938760Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.3938845Z               "line": 372
2026-06-21T05:16:14.3938926Z             }
2026-06-21T05:16:14.3939094Z           ]
2026-06-21T05:16:14.3939174Z         },
2026-06-21T05:16:14.3939269Z         "impl": {
2026-06-21T05:16:14.3939361Z           "complete": true,
2026-06-21T05:16:14.3939447Z           "evidence": [
2026-06-21T05:16:14.3939540Z             {
2026-06-21T05:16:14.3939663Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-21T05:16:14.3939769Z               "line": 110
2026-06-21T05:16:14.3939852Z             }
2026-06-21T05:16:14.3939938Z           ]
2026-06-21T05:16:14.3940033Z         },
2026-06-21T05:16:14.3940110Z         "int": {
2026-06-21T05:16:14.3940205Z           "complete": true,
2026-06-21T05:16:14.3940300Z           "evidence": [
2026-06-21T05:16:14.3940382Z             {
2026-06-21T05:16:14.3940515Z               "path": "crates/spt/tests/ready_resume_ledger_e2e.rs",
2026-06-21T05:16:14.3940605Z               "line": 26
2026-06-21T05:16:14.3940692Z             }
2026-06-21T05:16:14.3940777Z           ]
2026-06-21T05:16:14.3940872Z         },
2026-06-21T05:16:14.3940949Z         "unit": {
2026-06-21T05:16:14.3941045Z           "complete": true,
2026-06-21T05:16:14.3941125Z           "evidence": [
2026-06-21T05:16:14.3941216Z             {
2026-06-21T05:16:14.3941336Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-21T05:16:14.3941430Z               "line": 320
2026-06-21T05:16:14.3941516Z             }
2026-06-21T05:16:14.3941603Z           ]
2026-06-21T05:16:14.3941684Z         }
2026-06-21T05:16:14.3941773Z       }
2026-06-21T05:16:14.3941860Z     },
2026-06-21T05:16:14.3941946Z     {
2026-06-21T05:16:14.3942037Z       "id": "REQ-REL-1",
2026-06-21T05:16:14.3942405Z       "title": "spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)",
2026-06-21T05:16:14.3942509Z       "requiredStages": [
2026-06-21T05:16:14.3942600Z         "doc",
2026-06-21T05:16:14.3942691Z         "impl"
2026-06-21T05:16:14.3942781Z       ],
2026-06-21T05:16:14.3942872Z       "stages": {
2026-06-21T05:16:14.3942953Z         "doc": {
2026-06-21T05:16:14.3943054Z           "complete": true,
2026-06-21T05:16:14.3943143Z           "evidence": [
2026-06-21T05:16:14.3943235Z             {
2026-06-21T05:16:14.3943453Z               "path": "docs/adr/0014-publish-target-repo-and-lapse-proof-canonical-url.md",
2026-06-21T05:16:14.3943545Z               "line": 3
2026-06-21T05:16:14.3943630Z             }
2026-06-21T05:16:14.3943721Z           ]
2026-06-21T05:16:14.3943806Z         },
2026-06-21T05:16:14.3943893Z         "impl": {
2026-06-21T05:16:14.3943992Z           "complete": true,
2026-06-21T05:16:14.3944078Z           "evidence": [
2026-06-21T05:16:14.3944164Z             {
2026-06-21T05:16:14.3944412Z               "path": ".github/workflows/docs-publish.yml",
2026-06-21T05:16:14.3944499Z               "line": 11
2026-06-21T05:16:14.3944589Z             },
2026-06-21T05:16:14.3944669Z             {
2026-06-21T05:16:14.3944785Z               "path": "crates/xtask/src/main.rs",
2026-06-21T05:16:14.3944875Z               "line": 265
2026-06-21T05:16:14.3944965Z             }
2026-06-21T05:16:14.3949500Z           ]
2026-06-21T05:16:14.3949664Z         },
2026-06-21T05:16:14.3949753Z         "int": {
2026-06-21T05:16:14.3949853Z           "complete": false,
2026-06-21T05:16:14.3949954Z           "evidence": []
2026-06-21T05:16:14.3950204Z         },
2026-06-21T05:16:14.3950305Z         "unit": {
2026-06-21T05:16:14.3950408Z           "complete": false,
2026-06-21T05:16:14.3950498Z           "evidence": []
2026-06-21T05:16:14.3950579Z         }
2026-06-21T05:16:14.3950656Z       }
2026-06-21T05:16:14.3950737Z     },
2026-06-21T05:16:14.3950822Z     {
2026-06-21T05:16:14.3950933Z       "id": "REQ-REL-2",
2026-06-21T05:16:14.3951437Z       "title": "Release asset set consumable by the self-updater: platform binaries, SHA256SUMS, SignedRelease metadata, manifest schema, mock-adapter zip; tag-triggered cross-repo pipeline",
2026-06-21T05:16:14.3951533Z       "requiredStages": [
2026-06-21T05:16:14.3951624Z         "impl",
2026-06-21T05:16:14.3951705Z         "int"
2026-06-21T05:16:14.3951795Z       ],
2026-06-21T05:16:14.3951877Z       "stages": {
2026-06-21T05:16:14.3951962Z         "doc": {
2026-06-21T05:16:14.3952052Z           "complete": true,
2026-06-21T05:16:14.3952138Z           "evidence": [
2026-06-21T05:16:14.3952225Z             {
2026-06-21T05:16:14.3952348Z               "path": "docs/RELEASE-RUNBOOK.md",
2026-06-21T05:16:14.3952444Z               "line": 6
2026-06-21T05:16:14.3952521Z             }
2026-06-21T05:16:14.3952606Z           ]
2026-06-21T05:16:14.3952691Z         },
2026-06-21T05:16:14.3952776Z         "impl": {
2026-06-21T05:16:14.3952877Z           "complete": true,
2026-06-21T05:16:14.3952960Z           "evidence": [
2026-06-21T05:16:14.3953055Z             {
2026-06-21T05:16:14.3953175Z               "path": ".github/workflows/release.yml",
2026-06-21T05:16:14.3953275Z               "line": 16
2026-06-21T05:16:14.3953355Z             },
2026-06-21T05:16:14.3953442Z             {
2026-06-21T05:16:14.3953547Z               "path": "crates/xtask/src/main.rs",
2026-06-21T05:16:14.3953637Z               "line": 352
2026-06-21T05:16:14.3953727Z             },
2026-06-21T05:16:14.3953810Z             {
2026-06-21T05:16:14.3953923Z               "path": "crates/xtask/src/main.rs",
2026-06-21T05:16:14.3954023Z               "line": 426
2026-06-21T05:16:14.3954105Z             },
2026-06-21T05:16:14.3954190Z             {
2026-06-21T05:16:14.3954295Z               "path": "crates/xtask/src/main.rs",
2026-06-21T05:16:14.3954395Z               "line": 588
2026-06-21T05:16:14.3954472Z             },
2026-06-21T05:16:14.3954557Z             {
2026-06-21T05:16:14.3954671Z               "path": "crates/xtask/src/main.rs",
2026-06-21T05:16:14.3954759Z               "line": 720
2026-06-21T05:16:14.3954853Z             }
2026-06-21T05:16:14.3954934Z           ]
2026-06-21T05:16:14.3955020Z         },
2026-06-21T05:16:14.3955107Z         "int": {
2026-06-21T05:16:14.3955210Z           "complete": true,
2026-06-21T05:16:14.3955311Z           "evidence": [
2026-06-21T05:16:14.3955393Z             {
2026-06-21T05:16:14.3955529Z               "path": "crates/spt/tests/release_verify_e2e.rs",
2026-06-21T05:16:14.3955610Z               "line": 13
2026-06-21T05:16:14.3955700Z             }
2026-06-21T05:16:14.3955792Z           ]
2026-06-21T05:16:14.3955877Z         },
2026-06-21T05:16:14.3955972Z         "unit": {
2026-06-21T05:16:14.3956068Z           "complete": false,
2026-06-21T05:16:14.3956164Z           "evidence": []
2026-06-21T05:16:14.3956249Z         }
2026-06-21T05:16:14.3956345Z       }
2026-06-21T05:16:14.3956431Z     },
2026-06-21T05:16:14.3956521Z     {
2026-06-21T05:16:14.3956755Z       "id": "REQ-REL-3",
2026-06-21T05:16:14.3957174Z       "title": "Two-key release-signing trust anchor: primary + offline never-used recovery, both pubkeys embedded in the binary's trusted set, manual local signing (ADR-0015)",
2026-06-21T05:16:14.3957284Z       "requiredStages": [
2026-06-21T05:16:14.3957370Z         "impl",
2026-06-21T05:16:14.3957455Z         "unit"
2026-06-21T05:16:14.3957545Z       ],
2026-06-21T05:16:14.3957633Z       "stages": {
2026-06-21T05:16:14.3957723Z         "doc": {
2026-06-21T05:16:14.3957816Z           "complete": false,
2026-06-21T05:16:14.3957916Z           "evidence": []
2026-06-21T05:16:14.3957998Z         },
2026-06-21T05:16:14.3958162Z         "impl": {
2026-06-21T05:16:14.3958253Z           "complete": true,
2026-06-21T05:16:14.3958340Z           "evidence": [
2026-06-21T05:16:14.3958425Z             {
2026-06-21T05:16:14.3958553Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.3958655Z               "line": 237
2026-06-21T05:16:14.3958740Z             },
2026-06-21T05:16:14.3958829Z             {
2026-06-21T05:16:14.3959030Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.3959116Z               "line": 289
2026-06-21T05:16:14.3959202Z             },
2026-06-21T05:16:14.3959289Z             {
2026-06-21T05:16:14.3959402Z               "path": "crates/xtask/src/main.rs",
2026-06-21T05:16:14.3959488Z               "line": 329
2026-06-21T05:16:14.3959565Z             },
2026-06-21T05:16:14.3959655Z             {
2026-06-21T05:16:14.3959759Z               "path": "crates/xtask/src/main.rs",
2026-06-21T05:16:14.3959846Z               "line": 353
2026-06-21T05:16:14.3959933Z             },
2026-06-21T05:16:14.3960021Z             {
2026-06-21T05:16:14.3960122Z               "path": "crates/xtask/src/main.rs",
2026-06-21T05:16:14.3960209Z               "line": 394
2026-06-21T05:16:14.3960299Z             }
2026-06-21T05:16:14.3960380Z           ]
2026-06-21T05:16:14.3960461Z         },
2026-06-21T05:16:14.3960553Z         "int": {
2026-06-21T05:16:14.3960651Z           "complete": false,
2026-06-21T05:16:14.3960736Z           "evidence": []
2026-06-21T05:16:14.3960817Z         },
2026-06-21T05:16:14.3960903Z         "unit": {
2026-06-21T05:16:14.3960991Z           "complete": true,
2026-06-21T05:16:14.3961086Z           "evidence": [
2026-06-21T05:16:14.3961168Z             {
2026-06-21T05:16:14.3961293Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.3961372Z               "line": 1045
2026-06-21T05:16:14.3961469Z             },
2026-06-21T05:16:14.3961559Z             {
2026-06-21T05:16:14.3961668Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.3961774Z               "line": 1104
2026-06-21T05:16:14.3961855Z             }
2026-06-21T05:16:14.3961941Z           ]
2026-06-21T05:16:14.3962026Z         }
2026-06-21T05:16:14.3962117Z       }
2026-06-21T05:16:14.3962207Z     },
2026-06-21T05:16:14.3962298Z     {
2026-06-21T05:16:14.3962398Z       "id": "REQ-RUN-PICKER",
2026-06-21T05:16:14.3967119Z       "title": "Interactive `spt endpoint run` picker (ratatui TUI): bare `spt endpoint run` (no --adapter/--id) enters an in-process picker (flags-present = the REQ-HOST-RUN-1 non-interactive path, untouched). Layer 1 picks kind (Create new | Pick existing). Create-new: choose a registered kind=\"harness\" adapter with its shipped+local profiles tree-nested (registry::registered / manifest.profiles / local_profile_names) → enter a charset-validated id → start. Pick-existing: category select (left/right) over [<cwd-project> | Local node | Subnet], endpoints grouped + alphabetically sorted per category, a status square per endpoint (online green ■ / offline gray ▢ — the blue \"attached\" tri-state + Kick are DEFERRED to a broker attach-presence slice, M12-W2-RULING Q1), type-to-filter (`/`, nucleo-matcher), a pinned keybind legend, and a right-half two-pane description (harness adapter:profile · best-effort project history newest→oldest from the contextstore p-<project> branches, empty-if-none · `spt endpoint description`). Confirm layer offers status-dependent options — Attach/Start/View (rc pump / cmd_endpoint_run) · Instantiate-locally (remote) · Change-harness-adapter (offline) · Fork (cmd_fork) · Resume-from-history (offline+LOCAL only; enumerate spt_store::sessions::last_k, titles `<project> @ <ts> (…id5)`, feed session_id → cmd_endpoint_run --resume). A single action enum is the source of truth so a future tap-mode (phone PTY) layers on without re-coupling to keybinds. EVERY terminal action routes through cmd_endpoint_run / existing CLI fns — no second bringup path.",
2026-06-21T05:16:14.3967362Z       "requiredStages": [
2026-06-21T05:16:14.3967549Z         "doc",
2026-06-21T05:16:14.3967635Z         "impl",
2026-06-21T05:16:14.3967730Z         "unit"
2026-06-21T05:16:14.3967810Z       ],
2026-06-21T05:16:14.3967897Z       "stages": {
2026-06-21T05:16:14.3967982Z         "doc": {
2026-06-21T05:16:14.3968092Z           "complete": true,
2026-06-21T05:16:14.3968193Z           "evidence": [
2026-06-21T05:16:14.3968283Z             {
2026-06-21T05:16:14.3968386Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.3968476Z               "line": 349
2026-06-21T05:16:14.3968567Z             }
2026-06-21T05:16:14.3968652Z           ]
2026-06-21T05:16:14.3968737Z         },
2026-06-21T05:16:14.3968828Z         "impl": {
2026-06-21T05:16:14.3968914Z           "complete": true,
2026-06-21T05:16:14.3969094Z           "evidence": [
2026-06-21T05:16:14.3969171Z             {
2026-06-21T05:16:14.3969286Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3969370Z               "line": 958
2026-06-21T05:16:14.3969457Z             },
2026-06-21T05:16:14.3969553Z             {
2026-06-21T05:16:14.3969657Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3969757Z               "line": 968
2026-06-21T05:16:14.3969844Z             },
2026-06-21T05:16:14.3969929Z             {
2026-06-21T05:16:14.3970048Z               "path": "crates/spt/src/picker/data.rs",
2026-06-21T05:16:14.3970144Z               "line": 9
2026-06-21T05:16:14.3970239Z             },
2026-06-21T05:16:14.3970320Z             {
2026-06-21T05:16:14.3970440Z               "path": "crates/spt/src/picker/data.rs",
2026-06-21T05:16:14.3970525Z               "line": 67
2026-06-21T05:16:14.3970611Z             },
2026-06-21T05:16:14.3970692Z             {
2026-06-21T05:16:14.3970817Z               "path": "crates/spt/src/picker/mod.rs",
2026-06-21T05:16:14.3970915Z               "line": 16
2026-06-21T05:16:14.3970992Z             },
2026-06-21T05:16:14.3971075Z             {
2026-06-21T05:16:14.3971197Z               "path": "crates/spt/src/picker/mod.rs",
2026-06-21T05:16:14.3971339Z               "line": 254
2026-06-21T05:16:14.3971454Z             },
2026-06-21T05:16:14.3971580Z             {
2026-06-21T05:16:14.3971772Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T05:16:14.3971876Z               "line": 11
2026-06-21T05:16:14.3971961Z             },
2026-06-21T05:16:14.3972053Z             {
2026-06-21T05:16:14.3972172Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T05:16:14.3972257Z               "line": 115
2026-06-21T05:16:14.3972349Z             },
2026-06-21T05:16:14.3972439Z             {
2026-06-21T05:16:14.3972552Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T05:16:14.3972648Z               "line": 554
2026-06-21T05:16:14.3972735Z             },
2026-06-21T05:16:14.3972825Z             {
2026-06-21T05:16:14.3972953Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T05:16:14.3973069Z               "line": 635
2026-06-21T05:16:14.3973148Z             },
2026-06-21T05:16:14.3973235Z             {
2026-06-21T05:16:14.3973360Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T05:16:14.3973463Z               "line": 694
2026-06-21T05:16:14.3973574Z             },
2026-06-21T05:16:14.3973670Z             {
2026-06-21T05:16:14.3973768Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T05:16:14.3973987Z               "line": 747
2026-06-21T05:16:14.3974076Z             },
2026-06-21T05:16:14.3974166Z             {
2026-06-21T05:16:14.3974275Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T05:16:14.3974367Z               "line": 785
2026-06-21T05:16:14.3974452Z             },
2026-06-21T05:16:14.3974537Z             {
2026-06-21T05:16:14.3974658Z               "path": "crates/spt/src/picker/view.rs",
2026-06-21T05:16:14.3974739Z               "line": 8
2026-06-21T05:16:14.3974819Z             }
2026-06-21T05:16:14.3974901Z           ]
2026-06-21T05:16:14.3974991Z         },
2026-06-21T05:16:14.3975077Z         "int": {
2026-06-21T05:16:14.3975268Z           "complete": false,
2026-06-21T05:16:14.3975348Z           "evidence": []
2026-06-21T05:16:14.3975434Z         },
2026-06-21T05:16:14.3975520Z         "unit": {
2026-06-21T05:16:14.3975607Z           "complete": true,
2026-06-21T05:16:14.3975702Z           "evidence": [
2026-06-21T05:16:14.3975787Z             {
2026-06-21T05:16:14.3975908Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3976001Z               "line": 7638
2026-06-21T05:16:14.3976087Z             },
2026-06-21T05:16:14.3976170Z             {
2026-06-21T05:16:14.3976274Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.3976374Z               "line": 7649
2026-06-21T05:16:14.3976465Z             },
2026-06-21T05:16:14.3976547Z             {
2026-06-21T05:16:14.3976668Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T05:16:14.3976753Z               "line": 879
2026-06-21T05:16:14.3976835Z             },
2026-06-21T05:16:14.3976946Z             {
2026-06-21T05:16:14.3977082Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T05:16:14.3977174Z               "line": 928
2026-06-21T05:16:14.3977255Z             },
2026-06-21T05:16:14.3977345Z             {
2026-06-21T05:16:14.3977465Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T05:16:14.3977555Z               "line": 979
2026-06-21T05:16:14.3977650Z             },
2026-06-21T05:16:14.3977741Z             {
2026-06-21T05:16:14.3977860Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T05:16:14.3977946Z               "line": 996
2026-06-21T05:16:14.3978046Z             },
2026-06-21T05:16:14.3978128Z             {
2026-06-21T05:16:14.3978242Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T05:16:14.3978328Z               "line": 1005
2026-06-21T05:16:14.3978414Z             },
2026-06-21T05:16:14.3978509Z             {
2026-06-21T05:16:14.3978623Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T05:16:14.3978714Z               "line": 1016
2026-06-21T05:16:14.3978801Z             },
2026-06-21T05:16:14.3978890Z             {
2026-06-21T05:16:14.3979132Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T05:16:14.3979264Z               "line": 1038
2026-06-21T05:16:14.3979378Z             },
2026-06-21T05:16:14.3979498Z             {
2026-06-21T05:16:14.3979678Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T05:16:14.3979789Z               "line": 1057
2026-06-21T05:16:14.3979884Z             },
2026-06-21T05:16:14.3979969Z             {
2026-06-21T05:16:14.3980089Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T05:16:14.3980184Z               "line": 1107
2026-06-21T05:16:14.3980269Z             },
2026-06-21T05:16:14.3980352Z             {
2026-06-21T05:16:14.3980461Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T05:16:14.3980560Z               "line": 1136
2026-06-21T05:16:14.3980642Z             },
2026-06-21T05:16:14.3980728Z             {
2026-06-21T05:16:14.3980851Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T05:16:14.3980937Z               "line": 1149
2026-06-21T05:16:14.3981019Z             },
2026-06-21T05:16:14.3981104Z             {
2026-06-21T05:16:14.3981214Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T05:16:14.3981306Z               "line": 1215
2026-06-21T05:16:14.3981500Z             },
2026-06-21T05:16:14.3981587Z             {
2026-06-21T05:16:14.3981701Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T05:16:14.3981800Z               "line": 1256
2026-06-21T05:16:14.3981894Z             },
2026-06-21T05:16:14.3981976Z             {
2026-06-21T05:16:14.3982098Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T05:16:14.3982173Z               "line": 1272
2026-06-21T05:16:14.3982264Z             },
2026-06-21T05:16:14.3982356Z             {
2026-06-21T05:16:14.3982469Z               "path": "crates/spt/src/picker/view.rs",
2026-06-21T05:16:14.3982550Z               "line": 491
2026-06-21T05:16:14.3982751Z             },
2026-06-21T05:16:14.3982841Z             {
2026-06-21T05:16:14.3982942Z               "path": "crates/spt/src/picker/view.rs",
2026-06-21T05:16:14.3983032Z               "line": 506
2026-06-21T05:16:14.3983117Z             },
2026-06-21T05:16:14.3983208Z             {
2026-06-21T05:16:14.3983323Z               "path": "crates/spt/src/picker/view.rs",
2026-06-21T05:16:14.3983418Z               "line": 524
2026-06-21T05:16:14.3983504Z             },
2026-06-21T05:16:14.3983586Z             {
2026-06-21T05:16:14.3983694Z               "path": "crates/spt/src/picker/view.rs",
2026-06-21T05:16:14.3983790Z               "line": 546
2026-06-21T05:16:14.3983877Z             },
2026-06-21T05:16:14.3983958Z             {
2026-06-21T05:16:14.3984062Z               "path": "crates/spt/src/picker/view.rs",
2026-06-21T05:16:14.3984163Z               "line": 556
2026-06-21T05:16:14.3984249Z             },
2026-06-21T05:16:14.3984329Z             {
2026-06-21T05:16:14.3984442Z               "path": "crates/spt/src/picker/view.rs",
2026-06-21T05:16:14.3984542Z               "line": 582
2026-06-21T05:16:14.3984618Z             }
2026-06-21T05:16:14.3984702Z           ]
2026-06-21T05:16:14.3984797Z         }
2026-06-21T05:16:14.3984884Z       }
2026-06-21T05:16:14.3984970Z     },
2026-06-21T05:16:14.3985064Z     {
2026-06-21T05:16:14.3985170Z       "id": "REQ-RUN-SHORTCUT",
2026-06-21T05:16:14.3989819Z       "title": "`<basename>-<id>` launcher shortcut generation (picker `s` keybind, M12-W2-T2.4): from any pre-start options set the picker writes/updates a `<basename>-<id>` launcher at the project root baking the current selection's non-interactive `spt endpoint run` flags (terminal actions only: adapter[:profile] + id + (create|resume) + (start|attach|view); Kick/Instantiate/Change-adapter/Fork are interactive-only, not bakeable). BASENAME IS A PARAMETER (operator rev. 2026-06-14): harness-agnostic spt-core defaults to `spt` (→ `spt-<id>`); an adapter/flow OVERRIDES it (spt-claude-code → `cc`), so spt-core NEVER bakes `cc` (a harness name) into itself. The basename must be a DISTINCT token, never bare `spt` (a `spt.cmd` would shadow the real `spt.exe` only under cmd.exe cwd-first search, silently no-op in PowerShell/Unix, and self-recurse). The script is the CURRENT OS's native form — `.cmd` on Windows (NOT `.ps1`: default PATHEXT excludes `.ps1` so a bare/ext-less name never resolves one; `.cmd` is PATHEXT-resolvable), POSIX `sh` (+chmod +x) on Unix (a single portable form can't be both). The generated header documents the invocation reality (cmd.exe bare `<name>` in the project dir / PowerShell `.\\<name>` / Unix `./<name>`; a truly-bare basename on PATH = a PATH-installed launcher, `/spt:setup`'s job). Overwrite is SENTINEL-guarded: the generator writes + checks a generated-by header marker — it overwrites its own prior output freely, but REFUSES + warns if a same-named file lacks the sentinel (never clobber a user file). Requires the additive `--create` flag on `Run{}` (the default-fresh made explicit; N-1-safe).",
2026-06-21T05:16:14.3989972Z       "requiredStages": [
2026-06-21T05:16:14.3990063Z         "doc",
2026-06-21T05:16:14.3990157Z         "impl",
2026-06-21T05:16:14.3990243Z         "unit"
2026-06-21T05:16:14.3990325Z       ],
2026-06-21T05:16:14.3990424Z       "stages": {
2026-06-21T05:16:14.3990621Z         "doc": {
2026-06-21T05:16:14.3990725Z           "complete": true,
2026-06-21T05:16:14.3990806Z           "evidence": [
2026-06-21T05:16:14.3990892Z             {
2026-06-21T05:16:14.3990992Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.3991092Z               "line": 390
2026-06-21T05:16:14.3991183Z             }
2026-06-21T05:16:14.3991260Z           ]
2026-06-21T05:16:14.3991345Z         },
2026-06-21T05:16:14.3991435Z         "impl": {
2026-06-21T05:16:14.3991526Z           "complete": true,
2026-06-21T05:16:14.3991613Z           "evidence": [
2026-06-21T05:16:14.3991716Z             {
2026-06-21T05:16:14.3991856Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-21T05:16:14.3992036Z               "line": 39
2026-06-21T05:16:14.3992127Z             },
2026-06-21T05:16:14.3992214Z             {
2026-06-21T05:16:14.3992346Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-21T05:16:14.3992435Z               "line": 79
2026-06-21T05:16:14.3992522Z             },
2026-06-21T05:16:14.3992606Z             {
2026-06-21T05:16:14.3992719Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-21T05:16:14.3992824Z               "line": 162
2026-06-21T05:16:14.3992911Z             }
2026-06-21T05:16:14.3993001Z           ]
2026-06-21T05:16:14.3993086Z         },
2026-06-21T05:16:14.3993168Z         "int": {
2026-06-21T05:16:14.3993263Z           "complete": false,
2026-06-21T05:16:14.3993354Z           "evidence": []
2026-06-21T05:16:14.3993439Z         },
2026-06-21T05:16:14.3993526Z         "unit": {
2026-06-21T05:16:14.3993626Z           "complete": true,
2026-06-21T05:16:14.3993715Z           "evidence": [
2026-06-21T05:16:14.3993808Z             {
2026-06-21T05:16:14.3993930Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-21T05:16:14.3994016Z               "line": 206
2026-06-21T05:16:14.3994108Z             },
2026-06-21T05:16:14.3994189Z             {
2026-06-21T05:16:14.3994303Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-21T05:16:14.3994398Z               "line": 222
2026-06-21T05:16:14.3994485Z             },
2026-06-21T05:16:14.3994569Z             {
2026-06-21T05:16:14.3994679Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-21T05:16:14.3994776Z               "line": 238
2026-06-21T05:16:14.3994856Z             },
2026-06-21T05:16:14.3994945Z             {
2026-06-21T05:16:14.3995069Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-21T05:16:14.3995155Z               "line": 251
2026-06-21T05:16:14.3995243Z             },
2026-06-21T05:16:14.3995329Z             {
2026-06-21T05:16:14.3995449Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-21T05:16:14.3995540Z               "line": 258
2026-06-21T05:16:14.3995629Z             }
2026-06-21T05:16:14.3995721Z           ]
2026-06-21T05:16:14.3995806Z         }
2026-06-21T05:16:14.3995901Z       }
2026-06-21T05:16:14.3995982Z     },
2026-06-21T05:16:14.3996074Z     {
2026-06-21T05:16:14.3996174Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-21T05:16:14.3996369Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-21T05:16:14.3996473Z       "requiredStages": [
2026-06-21T05:16:14.3996563Z         "impl",
2026-06-21T05:16:14.3996655Z         "unit"
2026-06-21T05:16:14.3996741Z       ],
2026-06-21T05:16:14.3996836Z       "stages": {
2026-06-21T05:16:14.3996922Z         "doc": {
2026-06-21T05:16:14.3997008Z           "complete": false,
2026-06-21T05:16:14.3997108Z           "evidence": []
2026-06-21T05:16:14.3997189Z         },
2026-06-21T05:16:14.3997285Z         "impl": {
2026-06-21T05:16:14.3997367Z           "complete": true,
2026-06-21T05:16:14.3997469Z           "evidence": [
2026-06-21T05:16:14.3997546Z             {
2026-06-21T05:16:14.3997662Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T05:16:14.3997765Z               "line": 18
2026-06-21T05:16:14.3997851Z             },
2026-06-21T05:16:14.3997932Z             {
2026-06-21T05:16:14.3998042Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T05:16:14.3998217Z               "line": 35
2026-06-21T05:16:14.3998304Z             },
2026-06-21T05:16:14.3998390Z             {
2026-06-21T05:16:14.3998503Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T05:16:14.3998585Z               "line": 72
2026-06-21T05:16:14.3998671Z             }
2026-06-21T05:16:14.3998757Z           ]
2026-06-21T05:16:14.3998847Z         },
2026-06-21T05:16:14.3998934Z         "int": {
2026-06-21T05:16:14.3999147Z           "complete": false,
2026-06-21T05:16:14.3999249Z           "evidence": []
2026-06-21T05:16:14.3999333Z         },
2026-06-21T05:16:14.3999424Z         "unit": {
2026-06-21T05:16:14.3999630Z           "complete": true,
2026-06-21T05:16:14.3999729Z           "evidence": [
2026-06-21T05:16:14.3999806Z             {
2026-06-21T05:16:14.3999931Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T05:16:14.4000019Z               "line": 239
2026-06-21T05:16:14.4000104Z             },
2026-06-21T05:16:14.4000195Z             {
2026-06-21T05:16:14.4000313Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T05:16:14.4000412Z               "line": 256
2026-06-21T05:16:14.4000494Z             },
2026-06-21T05:16:14.4000580Z             {
2026-06-21T05:16:14.4000703Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T05:16:14.4000779Z               "line": 265
2026-06-21T05:16:14.4000895Z             }
2026-06-21T05:16:14.4000975Z           ]
2026-06-21T05:16:14.4001093Z         }
2026-06-21T05:16:14.4001181Z       }
2026-06-21T05:16:14.4001276Z     },
2026-06-21T05:16:14.4001361Z     {
2026-06-21T05:16:14.4001457Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-21T05:16:14.4001605Z       "title": "Hostable endpoint-types capability declaration",
2026-06-21T05:16:14.4001695Z       "requiredStages": [
2026-06-21T05:16:14.4001777Z         "impl",
2026-06-21T05:16:14.4001858Z         "unit"
2026-06-21T05:16:14.4001948Z       ],
2026-06-21T05:16:14.4002034Z       "stages": {
2026-06-21T05:16:14.4002126Z         "doc": {
2026-06-21T05:16:14.4002215Z           "complete": false,
2026-06-21T05:16:14.4002296Z           "evidence": []
2026-06-21T05:16:14.4002387Z         },
2026-06-21T05:16:14.4002474Z         "impl": {
2026-06-21T05:16:14.4002572Z           "complete": true,
2026-06-21T05:16:14.4002659Z           "evidence": [
2026-06-21T05:16:14.4002745Z             {
2026-06-21T05:16:14.4002868Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.4002958Z               "line": 598
2026-06-21T05:16:14.4003039Z             }
2026-06-21T05:16:14.4003120Z           ]
2026-06-21T05:16:14.4003213Z         },
2026-06-21T05:16:14.4003298Z         "int": {
2026-06-21T05:16:14.4003389Z           "complete": false,
2026-06-21T05:16:14.4003481Z           "evidence": []
2026-06-21T05:16:14.4003571Z         },
2026-06-21T05:16:14.4003661Z         "unit": {
2026-06-21T05:16:14.4003747Z           "complete": true,
2026-06-21T05:16:14.4003838Z           "evidence": [
2026-06-21T05:16:14.4003933Z             {
2026-06-21T05:16:14.4004053Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.4004148Z               "line": 967
2026-06-21T05:16:14.4004219Z             }
2026-06-21T05:16:14.4004305Z           ]
2026-06-21T05:16:14.4004387Z         }
2026-06-21T05:16:14.4004467Z       }
2026-06-21T05:16:14.4004558Z     },
2026-06-21T05:16:14.4004629Z     {
2026-06-21T05:16:14.4004730Z       "id": "REQ-SEAM-HISTORY",
2026-06-21T05:16:14.4004910Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-21T05:16:14.4005007Z       "requiredStages": [
2026-06-21T05:16:14.4005092Z         "impl",
2026-06-21T05:16:14.4005187Z         "unit",
2026-06-21T05:16:14.4005269Z         "int"
2026-06-21T05:16:14.4005350Z       ],
2026-06-21T05:16:14.4005444Z       "stages": {
2026-06-21T05:16:14.4005519Z         "doc": {
2026-06-21T05:16:14.4005624Z           "complete": false,
2026-06-21T05:16:14.4005710Z           "evidence": []
2026-06-21T05:16:14.4005913Z         },
2026-06-21T05:16:14.4006014Z         "impl": {
2026-06-21T05:16:14.4006104Z           "complete": true,
2026-06-21T05:16:14.4006208Z           "evidence": [
2026-06-21T05:16:14.4006295Z             {
2026-06-21T05:16:14.4006415Z               "path": "crates/spt-live/src/echo.rs",
2026-06-21T05:16:14.4006508Z               "line": 24
2026-06-21T05:16:14.4006605Z             },
2026-06-21T05:16:14.4006695Z             {
2026-06-21T05:16:14.4006809Z               "path": "crates/spt-live/src/history.rs",
2026-06-21T05:16:14.4006906Z               "line": 22
2026-06-21T05:16:14.4006986Z             }
2026-06-21T05:16:14.4007072Z           ]
2026-06-21T05:16:14.4007230Z         },
2026-06-21T05:16:14.4007315Z         "int": {
2026-06-21T05:16:14.4007411Z           "complete": true,
2026-06-21T05:16:14.4007501Z           "evidence": [
2026-06-21T05:16:14.4007588Z             {
2026-06-21T05:16:14.4007705Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-21T05:16:14.4007806Z               "line": 260
2026-06-21T05:16:14.4007893Z             }
2026-06-21T05:16:14.4007983Z           ]
2026-06-21T05:16:14.4008069Z         },
2026-06-21T05:16:14.4008150Z         "unit": {
2026-06-21T05:16:14.4008256Z           "complete": true,
2026-06-21T05:16:14.4008340Z           "evidence": [
2026-06-21T05:16:14.4008434Z             {
2026-06-21T05:16:14.4008544Z               "path": "crates/spt-live/src/echo.rs",
2026-06-21T05:16:14.4008636Z               "line": 171
2026-06-21T05:16:14.4008730Z             },
2026-06-21T05:16:14.4008806Z             {
2026-06-21T05:16:14.4008921Z               "path": "crates/spt-live/src/echo.rs",
2026-06-21T05:16:14.4009097Z               "line": 200
2026-06-21T05:16:14.4009184Z             },
2026-06-21T05:16:14.4009269Z             {
2026-06-21T05:16:14.4009388Z               "path": "crates/spt-live/src/echo.rs",
2026-06-21T05:16:14.4009475Z               "line": 220
2026-06-21T05:16:14.4009560Z             },
2026-06-21T05:16:14.4009641Z             {
2026-06-21T05:16:14.4009765Z               "path": "crates/spt-live/src/history.rs",
2026-06-21T05:16:14.4009852Z               "line": 199
2026-06-21T05:16:14.4009936Z             },
2026-06-21T05:16:14.4010017Z             {
2026-06-21T05:16:14.4010128Z               "path": "crates/spt-live/src/history.rs",
2026-06-21T05:16:14.4010213Z               "line": 219
2026-06-21T05:16:14.4010299Z             },
2026-06-21T05:16:14.4010385Z             {
2026-06-21T05:16:14.4010496Z               "path": "crates/spt-live/src/history.rs",
2026-06-21T05:16:14.4010579Z               "line": 244
2026-06-21T05:16:14.4010665Z             },
2026-06-21T05:16:14.4010751Z             {
2026-06-21T05:16:14.4010883Z               "path": "crates/spt-live/src/history.rs",
2026-06-21T05:16:14.4010978Z               "line": 276
2026-06-21T05:16:14.4011049Z             },
2026-06-21T05:16:14.4011145Z             {
2026-06-21T05:16:14.4011254Z               "path": "crates/spt-live/src/history.rs",
2026-06-21T05:16:14.4011349Z               "line": 297
2026-06-21T05:16:14.4011445Z             },
2026-06-21T05:16:14.4011526Z             {
2026-06-21T05:16:14.4011649Z               "path": "crates/spt-live/src/history.rs",
2026-06-21T05:16:14.4011737Z               "line": 324
2026-06-21T05:16:14.4011817Z             }
2026-06-21T05:16:14.4011897Z           ]
2026-06-21T05:16:14.4011973Z         }
2026-06-21T05:16:14.4012061Z       }
2026-06-21T05:16:14.4012136Z     },
2026-06-21T05:16:14.4012226Z     {
2026-06-21T05:16:14.4012317Z       "id": "REQ-SEAM-INJECT",
2026-06-21T05:16:14.4012479Z       "title": "inject-input methods configurable per activity-state",
2026-06-21T05:16:14.4012579Z       "requiredStages": [
2026-06-21T05:16:14.4012671Z         "impl",
2026-06-21T05:16:14.4012761Z         "unit"
2026-06-21T05:16:14.4012846Z       ],
2026-06-21T05:16:14.4012937Z       "stages": {
2026-06-21T05:16:14.4013020Z         "doc": {
2026-06-21T05:16:14.4013122Z           "complete": false,
2026-06-21T05:16:14.4013209Z           "evidence": []
2026-06-21T05:16:14.4013400Z         },
2026-06-21T05:16:14.4013489Z         "impl": {
2026-06-21T05:16:14.4013579Z           "complete": true,
2026-06-21T05:16:14.4013680Z           "evidence": [
2026-06-21T05:16:14.4013759Z             {
2026-06-21T05:16:14.4013882Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T05:16:14.4013964Z               "line": 19
2026-06-21T05:16:14.4014060Z             },
2026-06-21T05:16:14.4014154Z             {
2026-06-21T05:16:14.4014259Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T05:16:14.4014355Z               "line": 111
2026-06-21T05:16:14.4014440Z             }
2026-06-21T05:16:14.4014646Z           ]
2026-06-21T05:16:14.4014732Z         },
2026-06-21T05:16:14.4014822Z         "int": {
2026-06-21T05:16:14.4014923Z           "complete": false,
2026-06-21T05:16:14.4014999Z           "evidence": []
2026-06-21T05:16:14.4015089Z         },
2026-06-21T05:16:14.4015175Z         "unit": {
2026-06-21T05:16:14.4015267Z           "complete": true,
2026-06-21T05:16:14.4015366Z           "evidence": [
2026-06-21T05:16:14.4015451Z             {
2026-06-21T05:16:14.4015567Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T05:16:14.4015647Z               "line": 345
2026-06-21T05:16:14.4015737Z             },
2026-06-21T05:16:14.4015819Z             {
2026-06-21T05:16:14.4015943Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T05:16:14.4016033Z               "line": 365
2026-06-21T05:16:14.4016122Z             }
2026-06-21T05:16:14.4016209Z           ]
2026-06-21T05:16:14.4016293Z         }
2026-06-21T05:16:14.4016383Z       }
2026-06-21T05:16:14.4016468Z     },
2026-06-21T05:16:14.4016559Z     {
2026-06-21T05:16:14.4016669Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-21T05:16:14.4016811Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-21T05:16:14.4016913Z       "requiredStages": [
2026-06-21T05:16:14.4017003Z         "impl",
2026-06-21T05:16:14.4017093Z         "unit"
2026-06-21T05:16:14.4017189Z       ],
2026-06-21T05:16:14.4017270Z       "stages": {
2026-06-21T05:16:14.4017355Z         "doc": {
2026-06-21T05:16:14.4017451Z           "complete": false,
2026-06-21T05:16:14.4017537Z           "evidence": []
2026-06-21T05:16:14.4017622Z         },
2026-06-21T05:16:14.4017703Z         "impl": {
2026-06-21T05:16:14.4017790Z           "complete": true,
2026-06-21T05:16:14.4017885Z           "evidence": [
2026-06-21T05:16:14.4017971Z             {
2026-06-21T05:16:14.4018095Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.4018186Z               "line": 18
2026-06-21T05:16:14.4018275Z             },
2026-06-21T05:16:14.4018361Z             {
2026-06-21T05:16:14.4018472Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.4018566Z               "line": 431
2026-06-21T05:16:14.4018643Z             }
2026-06-21T05:16:14.4018725Z           ]
2026-06-21T05:16:14.4018806Z         },
2026-06-21T05:16:14.4018895Z         "int": {
2026-06-21T05:16:14.4019056Z           "complete": false,
2026-06-21T05:16:14.4019139Z           "evidence": []
2026-06-21T05:16:14.4019224Z         },
2026-06-21T05:16:14.4019309Z         "unit": {
2026-06-21T05:16:14.4019400Z           "complete": true,
2026-06-21T05:16:14.4019495Z           "evidence": [
2026-06-21T05:16:14.4019576Z             {
2026-06-21T05:16:14.4019701Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.4019782Z               "line": 881
2026-06-21T05:16:14.4019877Z             },
2026-06-21T05:16:14.4019957Z             {
2026-06-21T05:16:14.4020068Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.4020153Z               "line": 891
2026-06-21T05:16:14.4020234Z             }
2026-06-21T05:16:14.4020325Z           ]
2026-06-21T05:16:14.4020412Z         }
2026-06-21T05:16:14.4020501Z       }
2026-06-21T05:16:14.4020587Z     },
2026-06-21T05:16:14.4020674Z     {
2026-06-21T05:16:14.4020774Z       "id": "REQ-SEAM-PSYCHE",
2026-06-21T05:16:14.4020906Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-21T05:16:14.4021121Z       "requiredStages": [
2026-06-21T05:16:14.4021206Z         "impl",
2026-06-21T05:16:14.4021292Z         "unit",
2026-06-21T05:16:14.4021378Z         "int"
2026-06-21T05:16:14.4021471Z       ],
2026-06-21T05:16:14.4021566Z       "stages": {
2026-06-21T05:16:14.4021652Z         "doc": {
2026-06-21T05:16:14.4021753Z           "complete": false,
2026-06-21T05:16:14.4021837Z           "evidence": []
2026-06-21T05:16:14.4021928Z         },
2026-06-21T05:16:14.4022010Z         "impl": {
2026-06-21T05:16:14.4022115Z           "complete": true,
2026-06-21T05:16:14.4022205Z           "evidence": [
2026-06-21T05:16:14.4022382Z             {
2026-06-21T05:16:14.4022505Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-21T05:16:14.4022592Z               "line": 19
2026-06-21T05:16:14.4022677Z             },
2026-06-21T05:16:14.4022768Z             {
2026-06-21T05:16:14.4022877Z               "path": "crates/spt/src/api/live.rs",
2026-06-21T05:16:14.4022974Z               "line": 12
2026-06-21T05:16:14.4023049Z             },
2026-06-21T05:16:14.4023135Z             {
2026-06-21T05:16:14.4027425Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.4027553Z               "line": 301
2026-06-21T05:16:14.4027643Z             }
2026-06-21T05:16:14.4027731Z           ]
2026-06-21T05:16:14.4027821Z         },
2026-06-21T05:16:14.4027906Z         "int": {
2026-06-21T05:16:14.4028011Z           "complete": true,
2026-06-21T05:16:14.4028102Z           "evidence": [
2026-06-21T05:16:14.4028192Z             {
2026-06-21T05:16:14.4028326Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-21T05:16:14.4028450Z               "line": 259
2026-06-21T05:16:14.4028540Z             }
2026-06-21T05:16:14.4028626Z           ]
2026-06-21T05:16:14.4028708Z         },
2026-06-21T05:16:14.4028793Z         "unit": {
2026-06-21T05:16:14.4028893Z           "complete": true,
2026-06-21T05:16:14.4029061Z           "evidence": [
2026-06-21T05:16:14.4029150Z             {
2026-06-21T05:16:14.4029285Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-21T05:16:14.4029371Z               "line": 195
2026-06-21T05:16:14.4029464Z             },
2026-06-21T05:16:14.4029545Z             {
2026-06-21T05:16:14.4029669Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-21T05:16:14.4029751Z               "line": 202
2026-06-21T05:16:14.4029822Z             },
2026-06-21T05:16:14.4029912Z             {
2026-06-21T05:16:14.4030023Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-21T05:16:14.4030118Z               "line": 225
2026-06-21T05:16:14.4030203Z             },
2026-06-21T05:16:14.4030285Z             {
2026-06-21T05:16:14.4030399Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-21T05:16:14.4030489Z               "line": 106
2026-06-21T05:16:14.4030580Z             },
2026-06-21T05:16:14.4030661Z             {
2026-06-21T05:16:14.4030776Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-21T05:16:14.4030871Z               "line": 137
2026-06-21T05:16:14.4030958Z             },
2026-06-21T05:16:14.4031042Z             {
2026-06-21T05:16:14.4031147Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-21T05:16:14.4031244Z               "line": 161
2026-06-21T05:16:14.4031325Z             }
2026-06-21T05:16:14.4031404Z           ]
2026-06-21T05:16:14.4031491Z         }
2026-06-21T05:16:14.4031573Z       }
2026-06-21T05:16:14.4031662Z     },
2026-06-21T05:16:14.4031742Z     {
2026-06-21T05:16:14.4031847Z       "id": "REQ-SEAM-RESUME",
2026-06-21T05:16:14.4032036Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-21T05:16:14.4032145Z       "requiredStages": [
2026-06-21T05:16:14.4032231Z         "impl",
2026-06-21T05:16:14.4032323Z         "unit"
2026-06-21T05:16:14.4032412Z       ],
2026-06-21T05:16:14.4032498Z       "stages": {
2026-06-21T05:16:14.4032589Z         "doc": {
2026-06-21T05:16:14.4032694Z           "complete": false,
2026-06-21T05:16:14.4032937Z           "evidence": []
2026-06-21T05:16:14.4033022Z         },
2026-06-21T05:16:14.4033108Z         "impl": {
2026-06-21T05:16:14.4033200Z           "complete": true,
2026-06-21T05:16:14.4033275Z           "evidence": [
2026-06-21T05:16:14.4033365Z             {
2026-06-21T05:16:14.4033486Z               "path": "crates/spt-live/src/resume.rs",
2026-06-21T05:16:14.4033581Z               "line": 19
2026-06-21T05:16:14.4033666Z             }
2026-06-21T05:16:14.4033752Z           ]
2026-06-21T05:16:14.4033844Z         },
2026-06-21T05:16:14.4033928Z         "int": {
2026-06-21T05:16:14.4034028Z           "complete": false,
2026-06-21T05:16:14.4034211Z           "evidence": []
2026-06-21T05:16:14.4034291Z         },
2026-06-21T05:16:14.4034373Z         "unit": {
2026-06-21T05:16:14.4034469Z           "complete": true,
2026-06-21T05:16:14.4034558Z           "evidence": [
2026-06-21T05:16:14.4034633Z             {
2026-06-21T05:16:14.4034748Z               "path": "crates/spt-live/src/resume.rs",
2026-06-21T05:16:14.4034843Z               "line": 201
2026-06-21T05:16:14.4034926Z             },
2026-06-21T05:16:14.4035012Z             {
2026-06-21T05:16:14.4035132Z               "path": "crates/spt-live/src/resume.rs",
2026-06-21T05:16:14.4035227Z               "line": 223
2026-06-21T05:16:14.4035303Z             },
2026-06-21T05:16:14.4035389Z             {
2026-06-21T05:16:14.4035499Z               "path": "crates/spt-live/src/resume.rs",
2026-06-21T05:16:14.4035594Z               "line": 244
2026-06-21T05:16:14.4035665Z             }
2026-06-21T05:16:14.4035757Z           ]
2026-06-21T05:16:14.4035848Z         }
2026-06-21T05:16:14.4035932Z       }
2026-06-21T05:16:14.4036019Z     },
2026-06-21T05:16:14.4036105Z     {
2026-06-21T05:16:14.4036214Z       "id": "REQ-SEAM-SPAWN",
2026-06-21T05:16:14.4036324Z       "title": "spawn-session seam",
2026-06-21T05:16:14.4036425Z       "requiredStages": [
2026-06-21T05:16:14.4036519Z         "impl",
2026-06-21T05:16:14.4036605Z         "unit"
2026-06-21T05:16:14.4036702Z       ],
2026-06-21T05:16:14.4036791Z       "stages": {
2026-06-21T05:16:14.4036886Z         "doc": {
2026-06-21T05:16:14.4036978Z           "complete": false,
2026-06-21T05:16:14.4037073Z           "evidence": []
2026-06-21T05:16:14.4037158Z         },
2026-06-21T05:16:14.4037247Z         "impl": {
2026-06-21T05:16:14.4037338Z           "complete": true,
2026-06-21T05:16:14.4037418Z           "evidence": [
2026-06-21T05:16:14.4037498Z             {
2026-06-21T05:16:14.4037627Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.4037713Z               "line": 20
2026-06-21T05:16:14.4037803Z             }
2026-06-21T05:16:14.4037888Z           ]
2026-06-21T05:16:14.4037971Z         },
2026-06-21T05:16:14.4038056Z         "int": {
2026-06-21T05:16:14.4038156Z           "complete": false,
2026-06-21T05:16:14.4038242Z           "evidence": []
2026-06-21T05:16:14.4038333Z         },
2026-06-21T05:16:14.4038423Z         "unit": {
2026-06-21T05:16:14.4038532Z           "complete": true,
2026-06-21T05:16:14.4038625Z           "evidence": [
2026-06-21T05:16:14.4038709Z             {
2026-06-21T05:16:14.4038833Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.4038925Z               "line": 608
2026-06-21T05:16:14.4039096Z             },
2026-06-21T05:16:14.4039176Z             {
2026-06-21T05:16:14.4039292Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.4039386Z               "line": 615
2026-06-21T05:16:14.4039481Z             },
2026-06-21T05:16:14.4039564Z             {
2026-06-21T05:16:14.4039672Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.4039773Z               "line": 721
2026-06-21T05:16:14.4039850Z             },
2026-06-21T05:16:14.4039936Z             {
2026-06-21T05:16:14.4040058Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.4040138Z               "line": 727
2026-06-21T05:16:14.4040225Z             },
2026-06-21T05:16:14.4040424Z             {
2026-06-21T05:16:14.4040544Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.4040635Z               "line": 752
2026-06-21T05:16:14.4040720Z             },
2026-06-21T05:16:14.4040806Z             {
2026-06-21T05:16:14.4040921Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-21T05:16:14.4041007Z               "line": 789
2026-06-21T05:16:14.4041092Z             }
2026-06-21T05:16:14.4041174Z           ]
2026-06-21T05:16:14.4041260Z         }
2026-06-21T05:16:14.4041350Z       }
2026-06-21T05:16:14.4041431Z     },
2026-06-21T05:16:14.4041518Z     {
2026-06-21T05:16:14.4041631Z       "id": "REQ-SEAM-UPDATE",
2026-06-21T05:16:14.4041889Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-21T05:16:14.4041994Z       "requiredStages": [
2026-06-21T05:16:14.4042085Z         "impl",
2026-06-21T05:16:14.4042176Z         "unit"
2026-06-21T05:16:14.4042260Z       ],
2026-06-21T05:16:14.4042345Z       "stages": {
2026-06-21T05:16:14.4042436Z         "doc": {
2026-06-21T05:16:14.4042521Z           "complete": false,
2026-06-21T05:16:14.4042615Z           "evidence": []
2026-06-21T05:16:14.4042705Z         },
2026-06-21T05:16:14.4042782Z         "impl": {
2026-06-21T05:16:14.4042874Z           "complete": true,
2026-06-21T05:16:14.4042958Z           "evidence": [
2026-06-21T05:16:14.4043044Z             {
2026-06-21T05:16:14.4043187Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T05:16:14.4043277Z               "line": 28
2026-06-21T05:16:14.4043363Z             },
2026-06-21T05:16:14.4043450Z             {
2026-06-21T05:16:14.4043588Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T05:16:14.4043683Z               "line": 88
2026-06-21T05:16:14.4043765Z             }
2026-06-21T05:16:14.4043850Z           ]
2026-06-21T05:16:14.4043940Z         },
2026-06-21T05:16:14.4044027Z         "int": {
2026-06-21T05:16:14.4044113Z           "complete": false,
2026-06-21T05:16:14.4044212Z           "evidence": []
2026-06-21T05:16:14.4044293Z         },
2026-06-21T05:16:14.4044385Z         "unit": {
2026-06-21T05:16:14.4044470Z           "complete": true,
2026-06-21T05:16:14.4044556Z           "evidence": [
2026-06-21T05:16:14.4044642Z             {
2026-06-21T05:16:14.4044761Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T05:16:14.4044851Z               "line": 326
2026-06-21T05:16:14.4044918Z             },
2026-06-21T05:16:14.4045005Z             {
2026-06-21T05:16:14.4045137Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T05:16:14.4045222Z               "line": 337
2026-06-21T05:16:14.4045318Z             }
2026-06-21T05:16:14.4045403Z           ]
2026-06-21T05:16:14.4045487Z         }
2026-06-21T05:16:14.4045572Z       }
2026-06-21T05:16:14.4045654Z     },
2026-06-21T05:16:14.4045740Z     {
2026-06-21T05:16:14.4045844Z       "id": "REQ-SEC-1",
2026-06-21T05:16:14.4046230Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-21T05:16:14.4046332Z       "requiredStages": [
2026-06-21T05:16:14.4046427Z         "impl",
2026-06-21T05:16:14.4046511Z         "unit"
2026-06-21T05:16:14.4046603Z       ],
2026-06-21T05:16:14.4046693Z       "stages": {
2026-06-21T05:16:14.4046779Z         "doc": {
2026-06-21T05:16:14.4046874Z           "complete": false,
2026-06-21T05:16:14.4046957Z           "evidence": []
2026-06-21T05:16:14.4047041Z         },
2026-06-21T05:16:14.4047127Z         "impl": {
2026-06-21T05:16:14.4047228Z           "complete": true,
2026-06-21T05:16:14.4047314Z           "evidence": [
2026-06-21T05:16:14.4047408Z             {
2026-06-21T05:16:14.4047543Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-21T05:16:14.4047629Z               "line": 86
2026-06-21T05:16:14.4047718Z             },
2026-06-21T05:16:14.4047793Z             {
2026-06-21T05:16:14.4047908Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-21T05:16:14.4048101Z               "line": 116
2026-06-21T05:16:14.4048187Z             },
2026-06-21T05:16:14.4048269Z             {
2026-06-21T05:16:14.4048387Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-21T05:16:14.4048483Z               "line": 130
2026-06-21T05:16:14.4048569Z             },
2026-06-21T05:16:14.4048650Z             {
2026-06-21T05:16:14.4048764Z               "path": "crates/spt-store/src/access.rs",
2026-06-21T05:16:14.4048851Z               "line": 109
2026-06-21T05:16:14.4049026Z             },
2026-06-21T05:16:14.4049107Z             {
2026-06-21T05:16:14.4049227Z               "path": "crates/spt-store/src/access.rs",
2026-06-21T05:16:14.4049407Z               "line": 130
2026-06-21T05:16:14.4049490Z             },
2026-06-21T05:16:14.4049575Z             {
2026-06-21T05:16:14.4049684Z               "path": "crates/spt-store/src/access.rs",
2026-06-21T05:16:14.4049776Z               "line": 143
2026-06-21T05:16:14.4049861Z             },
2026-06-21T05:16:14.4049961Z             {
2026-06-21T05:16:14.4050066Z               "path": "crates/spt-store/src/access.rs",
2026-06-21T05:16:14.4050158Z               "line": 209
2026-06-21T05:16:14.4050251Z             },
2026-06-21T05:16:14.4050333Z             {
2026-06-21T05:16:14.4050444Z               "path": "crates/spt-store/src/access.rs",
2026-06-21T05:16:14.4050528Z               "line": 235
2026-06-21T05:16:14.4050618Z             },
2026-06-21T05:16:14.4050698Z             {
2026-06-21T05:16:14.4050814Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4050909Z               "line": 5295
2026-06-21T05:16:14.4050989Z             }
2026-06-21T05:16:14.4051095Z           ]
2026-06-21T05:16:14.4051181Z         },
2026-06-21T05:16:14.4051271Z         "int": {
2026-06-21T05:16:14.4051367Z           "complete": false,
2026-06-21T05:16:14.4051472Z           "evidence": []
2026-06-21T05:16:14.4051562Z         },
2026-06-21T05:16:14.4051642Z         "unit": {
2026-06-21T05:16:14.4051753Z           "complete": true,
2026-06-21T05:16:14.4051843Z           "evidence": [
2026-06-21T05:16:14.4051929Z             {
2026-06-21T05:16:14.4052049Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-21T05:16:14.4052139Z               "line": 142
2026-06-21T05:16:14.4052225Z             },
2026-06-21T05:16:14.4052301Z             {
2026-06-21T05:16:14.4052425Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-21T05:16:14.4052506Z               "line": 194
2026-06-21T05:16:14.4052596Z             },
2026-06-21T05:16:14.4052684Z             {
2026-06-21T05:16:14.4052801Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-21T05:16:14.4052905Z               "line": 235
2026-06-21T05:16:14.4052991Z             },
2026-06-21T05:16:14.4053077Z             {
2026-06-21T05:16:14.4053185Z               "path": "crates/spt-daemon/tests/access.rs",
2026-06-21T05:16:14.4053284Z               "line": 140
2026-06-21T05:16:14.4053366Z             },
2026-06-21T05:16:14.4053461Z             {
2026-06-21T05:16:14.4053570Z               "path": "crates/spt-store/src/access.rs",
2026-06-21T05:16:14.4053652Z               "line": 247
2026-06-21T05:16:14.4053733Z             },
2026-06-21T05:16:14.4053819Z             {
2026-06-21T05:16:14.4053923Z               "path": "crates/spt-store/src/access.rs",
2026-06-21T05:16:14.4054010Z               "line": 277
2026-06-21T05:16:14.4054100Z             },
2026-06-21T05:16:14.4054185Z             {
2026-06-21T05:16:14.4054292Z               "path": "crates/spt-store/src/access.rs",
2026-06-21T05:16:14.4054382Z               "line": 310
2026-06-21T05:16:14.4054467Z             },
2026-06-21T05:16:14.4054558Z             {
2026-06-21T05:16:14.4054663Z               "path": "crates/spt-store/src/access.rs",
2026-06-21T05:16:14.4054754Z               "line": 329
2026-06-21T05:16:14.4054834Z             },
2026-06-21T05:16:14.4054917Z             {
2026-06-21T05:16:14.4055035Z               "path": "crates/spt-store/src/access.rs",
2026-06-21T05:16:14.4055222Z               "line": 362
2026-06-21T05:16:14.4055307Z             },
2026-06-21T05:16:14.4055392Z             {
2026-06-21T05:16:14.4055503Z               "path": "crates/spt-store/src/access.rs",
2026-06-21T05:16:14.4055589Z               "line": 386
2026-06-21T05:16:14.4055678Z             },
2026-06-21T05:16:14.4055763Z             {
2026-06-21T05:16:14.4055873Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4055972Z               "line": 8296
2026-06-21T05:16:14.4056047Z             }
2026-06-21T05:16:14.4056142Z           ]
2026-06-21T05:16:14.4056233Z         }
2026-06-21T05:16:14.4056310Z       }
2026-06-21T05:16:14.4056404Z     },
2026-06-21T05:16:14.4056563Z     {
2026-06-21T05:16:14.4056677Z       "id": "REQ-SEND-SPT-HOSTED",
2026-06-21T05:16:14.4060521Z       "title": "An inbound `spt send` is DELIVERED to an spt-hosted endpoint (brought up via `spt endpoint run` → `api bind`, broker holds its PTY, NO `api listen` relay). Today cmd_bind→establish_perch (api/startup.rs ~441) writes info.json + ready marker + controllable=Some(true) but registers NO message-listener / NO address, so deliver.rs resolve_address→None→spool (deliver.rs:132-140) and the message NEVER reaches the live PTY — the endpoint reads 'online' (ready marker) yet `spt send` silently SPOOLS ('online but not deliverable' lie). Per CONTEXT:187-188 the daemon owns the PTY and delivers, manifest-configurable per activity-state (direct PTY injection / relay / HTTP). FIX: route an inbound send for an spt-hosted target through the daemon → broker InputReq → session.write_input PTY-inject (broker.rs dispatch_input/write_input ~988-1022), the same path the brain uses; the live-delivery handshake must report Sent (not Queued) and stop the spool-only fallback for a broker-hosted, PTY-resident endpoint. Detection is local: controllable==Some(true) + spt-hosted state + resolve_address==None. = the spt-core HALF of the wall-b finding (perri owns the adapter half: bind-hook fired-zero-perch + the missing endpoint-run int test). (post-v0.10.0)",
2026-06-21T05:16:14.4060679Z       "requiredStages": [
2026-06-21T05:16:14.4060760Z         "impl",
2026-06-21T05:16:14.4060845Z         "unit",
2026-06-21T05:16:14.4060931Z         "int"
2026-06-21T05:16:14.4061018Z       ],
2026-06-21T05:16:14.4061103Z       "stages": {
2026-06-21T05:16:14.4061188Z         "doc": {
2026-06-21T05:16:14.4061273Z           "complete": false,
2026-06-21T05:16:14.4061364Z           "evidence": []
2026-06-21T05:16:14.4061450Z         },
2026-06-21T05:16:14.4061535Z         "impl": {
2026-06-21T05:16:14.4061636Z           "complete": true,
2026-06-21T05:16:14.4061717Z           "evidence": [
2026-06-21T05:16:14.4061807Z             {
2026-06-21T05:16:14.4061941Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T05:16:14.4062027Z               "line": 1066
2026-06-21T05:16:14.4062108Z             },
2026-06-21T05:16:14.4062193Z             {
2026-06-21T05:16:14.4062314Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.4062394Z               "line": 1723
2026-06-21T05:16:14.4062479Z             },
2026-06-21T05:16:14.4062561Z             {
2026-06-21T05:16:14.4062671Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4062771Z               "line": 2850
2026-06-21T05:16:14.4062851Z             }
2026-06-21T05:16:14.4062939Z           ]
2026-06-21T05:16:14.4063023Z         },
2026-06-21T05:16:14.4063114Z         "int": {
2026-06-21T05:16:14.4063215Z           "complete": true,
2026-06-21T05:16:14.4063300Z           "evidence": [
2026-06-21T05:16:14.4063400Z             {
2026-06-21T05:16:14.4063513Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-21T05:16:14.4063608Z               "line": 189
2026-06-21T05:16:14.4063702Z             },
2026-06-21T05:16:14.4063782Z             {
2026-06-21T05:16:14.4063902Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-21T05:16:14.4063994Z               "line": 524
2026-06-21T05:16:14.4064088Z             }
2026-06-21T05:16:14.4064280Z           ]
2026-06-21T05:16:14.4064369Z         },
2026-06-21T05:16:14.4064459Z         "unit": {
2026-06-21T05:16:14.4064556Z           "complete": true,
2026-06-21T05:16:14.4064651Z           "evidence": [
2026-06-21T05:16:14.4064732Z             {
2026-06-21T05:16:14.4064847Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-21T05:16:14.4064937Z               "line": 952
2026-06-21T05:16:14.4065023Z             },
2026-06-21T05:16:14.4065108Z             {
2026-06-21T05:16:14.4065214Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4065304Z               "line": 7486
2026-06-21T05:16:14.4065389Z             }
2026-06-21T05:16:14.4065585Z           ]
2026-06-21T05:16:14.4065671Z         }
2026-06-21T05:16:14.4065758Z       }
2026-06-21T05:16:14.4065853Z     },
2026-06-21T05:16:14.4065928Z     {
2026-06-21T05:16:14.4066048Z       "id": "REQ-SESSION-RESUME-TEMPLATE",
2026-06-21T05:16:14.4072916Z       "title": "Resuming an endpoint session that HAS conversation history brings up a BLANK session. ROOT (doyle, code-grounded + CONTEXT — case-3 spt-core MISSING feature, NOT a perri docs-miss): CONTEXT L127-129 already defines the resume-session seam ('continue-existing: resume an existing harness session under the adapter — its NATIVE resume'), and the manifest already has the resume-variant pattern (Session has BOTH psyche_init AND psyche_resume, manifest.rs:217-219) — but the agent's own session has ONLY self_ (`[session.self]`, no resume sibling). cmd_endpoint_run (cli.rs:1304) re-passes the session_id through `[session.self]` on resume (resume.unwrap_or_else(mint_session_id)), so the adapter's FRESH command (e.g. `claude --session-id ..`) runs again instead of the harness NATIVE resume (`claude -r ..`) -> CC starts a fresh transcript -> blank. spt-core forwards session_id + cwd faithfully; it just has no way to express the native-resume invocation. SECOND GAP: CC resolves a transcript by session_id + cwd, but the session ledger records only {ts, session_id, trigger} (no cwd), so picker Resume-from-history (cross-project rows) can't restore the right cwd. FIX (doyle design, V0.13.0-P2-SESSION-RESUME-DESIGN.md, mirrors psyche_init->psyche_resume exactly): (A) add a `[session.resume]` role (resume: Option<SessionRole> on Session + roles()/is_empty()); cmd_endpoint_run selects it when --resume is set AND it's declared (fill {id}/{session_id}=resumed id/{session_name} + the resume cwd), else FALL BACK to `[session.self]` (full back-compat). (B) record cwd PER ledger row (operator ruling): {ts, session_id, trigger, cwd} additive serde-default; resume cwd = resumed row cwd -> else perch info.cwd -> else current_dir (back-compat for old rows + single-project endpoints); picker threads the selected row's cwd through Outcome::Run -> cmd_endpoint_run. (C) public docs (MANIFEST + harness-contract) teach `[session.resume]` so perri builds the adapter side BLIND. Adapter follow-on (perri, AFTER spt-core ships+docs): declare `[session.resume] command = claude -r {session_id} --remote-control {id} --dangerously-skip-permissions` from the resume cwd. Completes REQ-READY-AGENT-RESUME / REQ-RUN-PICKER resume-from-history. (v0.13.0)",
2026-06-21T05:16:14.4073068Z       "requiredStages": [
2026-06-21T05:16:14.4073145Z         "doc",
2026-06-21T05:16:14.4073236Z         "impl",
2026-06-21T05:16:14.4073312Z         "unit",
2026-06-21T05:16:14.4073402Z         "int"
2026-06-21T05:16:14.4073489Z       ],
2026-06-21T05:16:14.4073569Z       "stages": {
2026-06-21T05:16:14.4073655Z         "doc": {
2026-06-21T05:16:14.4073755Z           "complete": true,
2026-06-21T05:16:14.4073856Z           "evidence": [
2026-06-21T05:16:14.4073940Z             {
2026-06-21T05:16:14.4074097Z               "path": "docs-site/src/harness-contract/manifest.md",
2026-06-21T05:16:14.4074192Z               "line": 130
2026-06-21T05:16:14.4074276Z             },
2026-06-21T05:16:14.4074361Z             {
2026-06-21T05:16:14.4074472Z               "path": "docs/MANIFEST.md",
2026-06-21T05:16:14.4074568Z               "line": 96
2026-06-21T05:16:14.4074758Z             }
2026-06-21T05:16:14.4074849Z           ]
2026-06-21T05:16:14.4074929Z         },
2026-06-21T05:16:14.4075024Z         "impl": {
2026-06-21T05:16:14.4075125Z           "complete": true,
2026-06-21T05:16:14.4075206Z           "evidence": [
2026-06-21T05:16:14.4075301Z             {
2026-06-21T05:16:14.4075431Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T05:16:14.4075526Z               "line": 77
2026-06-21T05:16:14.4075606Z             },
2026-06-21T05:16:14.4075693Z             {
2026-06-21T05:16:14.4075811Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T05:16:14.4075897Z               "line": 183
2026-06-21T05:16:14.4076108Z             },
2026-06-21T05:16:14.4076193Z             {
2026-06-21T05:16:14.4076327Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.4076413Z               "line": 222
2026-06-21T05:16:14.4076507Z             },
2026-06-21T05:16:14.4076594Z             {
2026-06-21T05:16:14.4076728Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-21T05:16:14.4076827Z               "line": 71
2026-06-21T05:16:14.4076916Z             },
2026-06-21T05:16:14.4077008Z             {
2026-06-21T05:16:14.4077125Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T05:16:14.4077219Z               "line": 176
2026-06-21T05:16:14.4077305Z             }
2026-06-21T05:16:14.4077397Z           ]
2026-06-21T05:16:14.4077487Z         },
2026-06-21T05:16:14.4077572Z         "int": {
2026-06-21T05:16:14.4077668Z           "complete": true,
2026-06-21T05:16:14.4077754Z           "evidence": [
2026-06-21T05:16:14.4077839Z             {
2026-06-21T05:16:14.4077974Z               "path": "crates/spt/tests/resume_template_e2e.rs",
2026-06-21T05:16:14.4078064Z               "line": 25
2026-06-21T05:16:14.4078149Z             }
2026-06-21T05:16:14.4078231Z           ]
2026-06-21T05:16:14.4078317Z         },
2026-06-21T05:16:14.4078407Z         "unit": {
2026-06-21T05:16:14.4078511Z           "complete": true,
2026-06-21T05:16:14.4078608Z           "evidence": [
2026-06-21T05:16:14.4078689Z             {
2026-06-21T05:16:14.4078817Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T05:16:14.4078904Z               "line": 341
2026-06-21T05:16:14.4079065Z             },
2026-06-21T05:16:14.4079150Z             {
2026-06-21T05:16:14.4079281Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-21T05:16:14.4079375Z               "line": 391
2026-06-21T05:16:14.4079455Z             },
2026-06-21T05:16:14.4079541Z             {
2026-06-21T05:16:14.4079654Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.4079757Z               "line": 1244
2026-06-21T05:16:14.4079838Z             },
2026-06-21T05:16:14.4079925Z             {
2026-06-21T05:16:14.4080049Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-21T05:16:14.4080139Z               "line": 184
2026-06-21T05:16:14.4080231Z             },
2026-06-21T05:16:14.4080311Z             {
2026-06-21T05:16:14.4080425Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-21T05:16:14.4080507Z               "line": 208
2026-06-21T05:16:14.4080593Z             },
2026-06-21T05:16:14.4080683Z             {
2026-06-21T05:16:14.4080788Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-21T05:16:14.4080879Z               "line": 236
2026-06-21T05:16:14.4080964Z             },
2026-06-21T05:16:14.4081049Z             {
2026-06-21T05:16:14.4081156Z               "path": "crates/spt/src/picker/model.rs",
2026-06-21T05:16:14.4081251Z               "line": 945
2026-06-21T05:16:14.4081336Z             }
2026-06-21T05:16:14.4081422Z           ]
2026-06-21T05:16:14.4081513Z         }
2026-06-21T05:16:14.4081598Z       }
2026-06-21T05:16:14.4081679Z     },
2026-06-21T05:16:14.4081766Z     {
2026-06-21T05:16:14.4081866Z       "id": "REQ-SHELL-1",
2026-06-21T05:16:14.4082717Z       "title": "Shell hosting machinery: shell perch under the owner (type/owner/adapter_name/status/alias), broker-launched binary + api bind local-link handshake, the three channels (command durable, text+file durable + progress-queryable, sensory REST-only never spooled + dropped-unless-owner-live), owner exclusivity (CONTEXT Shell model)",
2026-06-21T05:16:14.4082937Z       "requiredStages": [
2026-06-21T05:16:14.4083022Z         "impl",
2026-06-21T05:16:14.4083105Z         "unit",
2026-06-21T05:16:14.4083195Z         "int"
2026-06-21T05:16:14.4083280Z       ],
2026-06-21T05:16:14.4083366Z       "stages": {
2026-06-21T05:16:14.4083453Z         "doc": {
2026-06-21T05:16:14.4083543Z           "complete": false,
2026-06-21T05:16:14.4083744Z           "evidence": []
2026-06-21T05:16:14.4083824Z         },
2026-06-21T05:16:14.4083919Z         "impl": {
2026-06-21T05:16:14.4084021Z           "complete": true,
2026-06-21T05:16:14.4084106Z           "evidence": [
2026-06-21T05:16:14.4084195Z             {
2026-06-21T05:16:14.4084315Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T05:16:14.4084407Z               "line": 189
2026-06-21T05:16:14.4084486Z             },
2026-06-21T05:16:14.4084576Z             {
2026-06-21T05:16:14.4084705Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T05:16:14.4084789Z               "line": 268
2026-06-21T05:16:14.4084875Z             },
2026-06-21T05:16:14.4084960Z             {
2026-06-21T05:16:14.4085085Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-21T05:16:14.4085170Z               "line": 27
2026-06-21T05:16:14.4085260Z             },
2026-06-21T05:16:14.4085347Z             {
2026-06-21T05:16:14.4085461Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-21T05:16:14.4085561Z               "line": 52
2026-06-21T05:16:14.4085643Z             },
2026-06-21T05:16:14.4085728Z             {
2026-06-21T05:16:14.4085847Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-21T05:16:14.4085943Z               "line": 144
2026-06-21T05:16:14.4086033Z             },
2026-06-21T05:16:14.4086123Z             {
2026-06-21T05:16:14.4086248Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-21T05:16:14.4086343Z               "line": 176
2026-06-21T05:16:14.4086429Z             },
2026-06-21T05:16:14.4086515Z             {
2026-06-21T05:16:14.4086635Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T05:16:14.4086734Z               "line": 22
2026-06-21T05:16:14.4086820Z             },
2026-06-21T05:16:14.4086907Z             {
2026-06-21T05:16:14.4087025Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T05:16:14.4087116Z               "line": 65
2026-06-21T05:16:14.4087203Z             },
2026-06-21T05:16:14.4087293Z             {
2026-06-21T05:16:14.4087420Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T05:16:14.4087510Z               "line": 76
2026-06-21T05:16:14.4087592Z             },
2026-06-21T05:16:14.4087666Z             {
2026-06-21T05:16:14.4087789Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T05:16:14.4087890Z               "line": 151
2026-06-21T05:16:14.4087976Z             },
2026-06-21T05:16:14.4088066Z             {
2026-06-21T05:16:14.4088180Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T05:16:14.4088272Z               "line": 210
2026-06-21T05:16:14.4088352Z             },
2026-06-21T05:16:14.4088437Z             {
2026-06-21T05:16:14.4088553Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T05:16:14.4088643Z               "line": 259
2026-06-21T05:16:14.4088733Z             },
2026-06-21T05:16:14.4088814Z             {
2026-06-21T05:16:14.4088929Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T05:16:14.4089125Z               "line": 281
2026-06-21T05:16:14.4089211Z             },
2026-06-21T05:16:14.4089301Z             {
2026-06-21T05:16:14.4089410Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T05:16:14.4089507Z               "line": 294
2026-06-21T05:16:14.4089697Z             },
2026-06-21T05:16:14.4089779Z             {
2026-06-21T05:16:14.4089888Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.4089977Z               "line": 217
2026-06-21T05:16:14.4090053Z             },
2026-06-21T05:16:14.4090139Z             {
2026-06-21T05:16:14.4090256Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.4090331Z               "line": 233
2026-06-21T05:16:14.4090418Z             },
2026-06-21T05:16:14.4090505Z             {
2026-06-21T05:16:14.4090628Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T05:16:14.4090723Z               "line": 41
2026-06-21T05:16:14.4090905Z             },
2026-06-21T05:16:14.4090994Z             {
2026-06-21T05:16:14.4091115Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T05:16:14.4091205Z               "line": 222
2026-06-21T05:16:14.4091290Z             },
2026-06-21T05:16:14.4091377Z             {
2026-06-21T05:16:14.4091501Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-21T05:16:14.4091596Z               "line": 173
2026-06-21T05:16:14.4091677Z             },
2026-06-21T05:16:14.4091764Z             {
2026-06-21T05:16:14.4091873Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T05:16:14.4091963Z               "line": 354
2026-06-21T05:16:14.4092050Z             },
2026-06-21T05:16:14.4092144Z             {
2026-06-21T05:16:14.4092254Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T05:16:14.4092341Z               "line": 419
2026-06-21T05:16:14.4092426Z             },
2026-06-21T05:16:14.4092506Z             {
2026-06-21T05:16:14.4092622Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.4092732Z               "line": 333
2026-06-21T05:16:14.4092811Z             },
2026-06-21T05:16:14.4092892Z             {
2026-06-21T05:16:14.4093002Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4093093Z               "line": 6320
2026-06-21T05:16:14.4093187Z             },
2026-06-21T05:16:14.4093282Z             {
2026-06-21T05:16:14.4093379Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4093465Z               "line": 6470
2026-06-21T05:16:14.4093549Z             },
2026-06-21T05:16:14.4093636Z             {
2026-06-21T05:16:14.4093740Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4093831Z               "line": 6646
2026-06-21T05:16:14.4093912Z             }
2026-06-21T05:16:14.4093989Z           ]
2026-06-21T05:16:14.4094079Z         },
2026-06-21T05:16:14.4094160Z         "int": {
2026-06-21T05:16:14.4094251Z           "complete": true,
2026-06-21T05:16:14.4094342Z           "evidence": [
2026-06-21T05:16:14.4094432Z             {
2026-06-21T05:16:14.4094561Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-21T05:16:14.4094652Z               "line": 713
2026-06-21T05:16:14.4094746Z             },
2026-06-21T05:16:14.4094832Z             {
2026-06-21T05:16:14.4094963Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-21T05:16:14.4095056Z               "line": 8
2026-06-21T05:16:14.4095141Z             },
2026-06-21T05:16:14.4095223Z             {
2026-06-21T05:16:14.4095350Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-21T05:16:14.4095439Z               "line": 49
2026-06-21T05:16:14.4095520Z             },
2026-06-21T05:16:14.4095602Z             {
2026-06-21T05:16:14.4095725Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.4095820Z               "line": 778
2026-06-21T05:16:14.4095917Z             },
2026-06-21T05:16:14.4096003Z             {
2026-06-21T05:16:14.4096130Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.4096227Z               "line": 1213
2026-06-21T05:16:14.4096317Z             },
2026-06-21T05:16:14.4096397Z             {
2026-06-21T05:16:14.4096527Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-21T05:16:14.4096622Z               "line": 17
2026-06-21T05:16:14.4096798Z             },
2026-06-21T05:16:14.4096885Z             {
2026-06-21T05:16:14.4096999Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-21T05:16:14.4097098Z               "line": 14
2026-06-21T05:16:14.4097176Z             }
2026-06-21T05:16:14.4097275Z           ]
2026-06-21T05:16:14.4097365Z         },
2026-06-21T05:16:14.4097448Z         "unit": {
2026-06-21T05:16:14.4097548Z           "complete": true,
2026-06-21T05:16:14.4097632Z           "evidence": [
2026-06-21T05:16:14.4097719Z             {
2026-06-21T05:16:14.4097839Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-21T05:16:14.4097932Z               "line": 246
2026-06-21T05:16:14.4098090Z             },
2026-06-21T05:16:14.4098166Z             {
2026-06-21T05:16:14.4098292Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-21T05:16:14.4098387Z               "line": 279
2026-06-21T05:16:14.4098464Z             },
2026-06-21T05:16:14.4098546Z             {
2026-06-21T05:16:14.4098678Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-21T05:16:14.4098770Z               "line": 319
2026-06-21T05:16:14.4098855Z             },
2026-06-21T05:16:14.4099011Z             {
2026-06-21T05:16:14.4099122Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T05:16:14.4099213Z               "line": 599
2026-06-21T05:16:14.4099303Z             },
2026-06-21T05:16:14.4099389Z             {
2026-06-21T05:16:14.4099513Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T05:16:14.4099599Z               "line": 672
2026-06-21T05:16:14.4099685Z             },
2026-06-21T05:16:14.4099757Z             {
2026-06-21T05:16:14.4099884Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T05:16:14.4099965Z               "line": 816
2026-06-21T05:16:14.4100048Z             },
2026-06-21T05:16:14.4100133Z             {
2026-06-21T05:16:14.4100238Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.4100334Z               "line": 595
2026-06-21T05:16:14.4100419Z             },
2026-06-21T05:16:14.4100499Z             {
2026-06-21T05:16:14.4100627Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-21T05:16:14.4100713Z               "line": 399
2026-06-21T05:16:14.4100802Z             },
2026-06-21T05:16:14.4100887Z             {
2026-06-21T05:16:14.4100997Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4101089Z               "line": 8976
2026-06-21T05:16:14.4101179Z             },
2026-06-21T05:16:14.4101269Z             {
2026-06-21T05:16:14.4101375Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4101470Z               "line": 9300
2026-06-21T05:16:14.4101559Z             },
2026-06-21T05:16:14.4101642Z             {
2026-06-21T05:16:14.4101732Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4101822Z               "line": 9717
2026-06-21T05:16:14.4101908Z             }
2026-06-21T05:16:14.4101990Z           ]
2026-06-21T05:16:14.4102075Z         }
2026-06-21T05:16:14.4106143Z       }
2026-06-21T05:16:14.4106267Z     },
2026-06-21T05:16:14.4106357Z     {
2026-06-21T05:16:14.4106467Z       "id": "REQ-SHELL-2",
2026-06-21T05:16:14.4107964Z       "title": "Shell sleep/wake: link-break always closes the binary (pre-close instruction + termination timeout), ephemeral teardown vs persistent offline/relink, wake_command wake-watcher (offline-only, exit-opcode supervision, exponential backoff + give-up), state-keyed wake resolution (dormant/suspended/active-elsewhere; no-reachable refuses — spawn-anywhere branch deferred), spt shutdown owner cascade + api owner-shutdown gated by can_shutdown (CONTEXT Shell sleep/wake)",
2026-06-21T05:16:14.4108089Z       "requiredStages": [
2026-06-21T05:16:14.4108187Z         "impl",
2026-06-21T05:16:14.4108269Z         "unit",
2026-06-21T05:16:14.4108361Z         "int"
2026-06-21T05:16:14.4108451Z       ],
2026-06-21T05:16:14.4108530Z       "stages": {
2026-06-21T05:16:14.4108620Z         "doc": {
2026-06-21T05:16:14.4108871Z           "complete": false,
2026-06-21T05:16:14.4109053Z           "evidence": []
2026-06-21T05:16:14.4109139Z         },
2026-06-21T05:16:14.4109234Z         "impl": {
2026-06-21T05:16:14.4109335Z           "complete": true,
2026-06-21T05:16:14.4109415Z           "evidence": [
2026-06-21T05:16:14.4109500Z             {
2026-06-21T05:16:14.4109630Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.4109725Z               "line": 217
2026-06-21T05:16:14.4109801Z             },
2026-06-21T05:16:14.4109887Z             {
2026-06-21T05:16:14.4110012Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-21T05:16:14.4110107Z               "line": 403
2026-06-21T05:16:14.4110327Z             },
2026-06-21T05:16:14.4110411Z             {
2026-06-21T05:16:14.4110540Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-21T05:16:14.4110632Z               "line": 250
2026-06-21T05:16:14.4110721Z             },
2026-06-21T05:16:14.4110807Z             {
2026-06-21T05:16:14.4110938Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.4111017Z               "line": 403
2026-06-21T05:16:14.4111102Z             },
2026-06-21T05:16:14.4111192Z             {
2026-06-21T05:16:14.4111306Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T05:16:14.4111405Z               "line": 30
2026-06-21T05:16:14.4111495Z             },
2026-06-21T05:16:14.4111577Z             {
2026-06-21T05:16:14.4111696Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T05:16:14.4111790Z               "line": 409
2026-06-21T05:16:14.4111872Z             },
2026-06-21T05:16:14.4111963Z             {
2026-06-21T05:16:14.4112091Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T05:16:14.4112182Z               "line": 445
2026-06-21T05:16:14.4112268Z             },
2026-06-21T05:16:14.4112354Z             {
2026-06-21T05:16:14.4112473Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T05:16:14.4112564Z               "line": 660
2026-06-21T05:16:14.4112649Z             },
2026-06-21T05:16:14.4112725Z             {
2026-06-21T05:16:14.4112856Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T05:16:14.4112950Z               "line": 348
2026-06-21T05:16:14.4113035Z             },
2026-06-21T05:16:14.4113112Z             {
2026-06-21T05:16:14.4113236Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-21T05:16:14.4113321Z               "line": 115
2026-06-21T05:16:14.4113407Z             },
2026-06-21T05:16:14.4113499Z             {
2026-06-21T05:16:14.4113612Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T05:16:14.4113713Z               "line": 120
2026-06-21T05:16:14.4113800Z             },
2026-06-21T05:16:14.4113885Z             {
2026-06-21T05:16:14.4114007Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T05:16:14.4114093Z               "line": 374
2026-06-21T05:16:14.4114180Z             },
2026-06-21T05:16:14.4114260Z             {
2026-06-21T05:16:14.4114393Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T05:16:14.4114485Z               "line": 500
2026-06-21T05:16:14.4114556Z             },
2026-06-21T05:16:14.4114650Z             {
2026-06-21T05:16:14.4114766Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T05:16:14.4114866Z               "line": 24
2026-06-21T05:16:14.4114951Z             },
2026-06-21T05:16:14.4115033Z             {
2026-06-21T05:16:14.4115147Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T05:16:14.4115238Z               "line": 76
2026-06-21T05:16:14.4115332Z             },
2026-06-21T05:16:14.4115419Z             {
2026-06-21T05:16:14.4115547Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T05:16:14.4115637Z               "line": 154
2026-06-21T05:16:14.4115725Z             },
2026-06-21T05:16:14.4115815Z             {
2026-06-21T05:16:14.4115933Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T05:16:14.4116139Z               "line": 177
2026-06-21T05:16:14.4116228Z             },
2026-06-21T05:16:14.4116318Z             {
2026-06-21T05:16:14.4116438Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T05:16:14.4116536Z               "line": 273
2026-06-21T05:16:14.4116626Z             },
2026-06-21T05:16:14.4116712Z             {
2026-06-21T05:16:14.4116841Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T05:16:14.4116931Z               "line": 456
2026-06-21T05:16:14.4117022Z             },
2026-06-21T05:16:14.4117108Z             {
2026-06-21T05:16:14.4117231Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T05:16:14.4117409Z               "line": 538
2026-06-21T05:16:14.4117485Z             },
2026-06-21T05:16:14.4117575Z             {
2026-06-21T05:16:14.4117695Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-21T05:16:14.4117786Z               "line": 27
2026-06-21T05:16:14.4117865Z             },
2026-06-21T05:16:14.4117958Z             {
2026-06-21T05:16:14.4118090Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-21T05:16:14.4118180Z               "line": 48
2026-06-21T05:16:14.4118263Z             },
2026-06-21T05:16:14.4118349Z             {
2026-06-21T05:16:14.4118476Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.4118563Z               "line": 517
2026-06-21T05:16:14.4118654Z             },
2026-06-21T05:16:14.4118743Z             {
2026-06-21T05:16:14.4118844Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4119021Z               "line": 1921
2026-06-21T05:16:14.4119105Z             },
2026-06-21T05:16:14.4119195Z             {
2026-06-21T05:16:14.4119300Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4119393Z               "line": 6334
2026-06-21T05:16:14.4119479Z             },
2026-06-21T05:16:14.4119565Z             {
2026-06-21T05:16:14.4119671Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4119765Z               "line": 6395
2026-06-21T05:16:14.4119846Z             },
2026-06-21T05:16:14.4119933Z             {
2026-06-21T05:16:14.4120042Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4120137Z               "line": 6423
2026-06-21T05:16:14.4120219Z             },
2026-06-21T05:16:14.4120304Z             {
2026-06-21T05:16:14.4120404Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4120500Z               "line": 6477
2026-06-21T05:16:14.4120586Z             },
2026-06-21T05:16:14.4120672Z             {
2026-06-21T05:16:14.4120781Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4120863Z               "line": 6732
2026-06-21T05:16:14.4120967Z             },
2026-06-21T05:16:14.4121052Z             {
2026-06-21T05:16:14.4121159Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4121248Z               "line": 6792
2026-06-21T05:16:14.4121339Z             },
2026-06-21T05:16:14.4121430Z             {
2026-06-21T05:16:14.4121540Z               "path": "crates/spt/src/wansend.rs",
2026-06-21T05:16:14.4121634Z               "line": 298
2026-06-21T05:16:14.4121719Z             },
2026-06-21T05:16:14.4121810Z             {
2026-06-21T05:16:14.4121908Z               "path": "crates/spt/src/wansend.rs",
2026-06-21T05:16:14.4121998Z               "line": 339
2026-06-21T05:16:14.4122089Z             }
2026-06-21T05:16:14.4122170Z           ]
2026-06-21T05:16:14.4122256Z         },
2026-06-21T05:16:14.4122346Z         "int": {
2026-06-21T05:16:14.4122442Z           "complete": true,
2026-06-21T05:16:14.4122528Z           "evidence": [
2026-06-21T05:16:14.4122622Z             {
2026-06-21T05:16:14.4122747Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-21T05:16:14.4122842Z               "line": 706
2026-06-21T05:16:14.4122928Z             },
2026-06-21T05:16:14.4123013Z             {
2026-06-21T05:16:14.4123147Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.4123243Z               "line": 778
2026-06-21T05:16:14.4123425Z             },
2026-06-21T05:16:14.4123519Z             {
2026-06-21T05:16:14.4123629Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.4123726Z               "line": 1213
2026-06-21T05:16:14.4123815Z             },
2026-06-21T05:16:14.4123901Z             {
2026-06-21T05:16:14.4124035Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-21T05:16:14.4124120Z               "line": 18
2026-06-21T05:16:14.4124215Z             }
2026-06-21T05:16:14.4124302Z           ]
2026-06-21T05:16:14.4124389Z         },
2026-06-21T05:16:14.4124477Z         "unit": {
2026-06-21T05:16:14.4124667Z           "complete": true,
2026-06-21T05:16:14.4124759Z           "evidence": [
2026-06-21T05:16:14.4124839Z             {
2026-06-21T05:16:14.4124968Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T05:16:14.4125054Z               "line": 744
2026-06-21T05:16:14.4125140Z             },
2026-06-21T05:16:14.4125229Z             {
2026-06-21T05:16:14.4125364Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-21T05:16:14.4125450Z               "line": 796
2026-06-21T05:16:14.4125535Z             },
2026-06-21T05:16:14.4125621Z             {
2026-06-21T05:16:14.4125726Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T05:16:14.4125826Z               "line": 705
2026-06-21T05:16:14.4125902Z             },
2026-06-21T05:16:14.4125999Z             {
2026-06-21T05:16:14.4126112Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T05:16:14.4126202Z               "line": 754
2026-06-21T05:16:14.4126295Z             },
2026-06-21T05:16:14.4126384Z             {
2026-06-21T05:16:14.4126503Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T05:16:14.4126595Z               "line": 778
2026-06-21T05:16:14.4126685Z             },
2026-06-21T05:16:14.4126774Z             {
2026-06-21T05:16:14.4126888Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T05:16:14.4126984Z               "line": 603
2026-06-21T05:16:14.4127072Z             },
2026-06-21T05:16:14.4127162Z             {
2026-06-21T05:16:14.4127277Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T05:16:14.4127377Z               "line": 624
2026-06-21T05:16:14.4127462Z             },
2026-06-21T05:16:14.4127539Z             {
2026-06-21T05:16:14.4127654Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T05:16:14.4127740Z               "line": 660
2026-06-21T05:16:14.4127830Z             },
2026-06-21T05:16:14.4127912Z             {
2026-06-21T05:16:14.4128035Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T05:16:14.4128140Z               "line": 714
2026-06-21T05:16:14.4128217Z             },
2026-06-21T05:16:14.4128303Z             {
2026-06-21T05:16:14.4128425Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T05:16:14.4128518Z               "line": 732
2026-06-21T05:16:14.4128603Z             },
2026-06-21T05:16:14.4128698Z             {
2026-06-21T05:16:14.4128818Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T05:16:14.4128904Z               "line": 766
2026-06-21T05:16:14.4129055Z             },
2026-06-21T05:16:14.4129138Z             {
2026-06-21T05:16:14.4129256Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-21T05:16:14.4129347Z               "line": 841
2026-06-21T05:16:14.4129428Z             },
2026-06-21T05:16:14.4129515Z             {
2026-06-21T05:16:14.4129637Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-21T05:16:14.4129717Z               "line": 85
2026-06-21T05:16:14.4129803Z             },
2026-06-21T05:16:14.4129893Z             {
2026-06-21T05:16:14.4129996Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4130082Z               "line": 8044
2026-06-21T05:16:14.4130174Z             },
2026-06-21T05:16:14.4130259Z             {
2026-06-21T05:16:14.4130368Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4130565Z               "line": 9054
2026-06-21T05:16:14.4130659Z             },
2026-06-21T05:16:14.4130746Z             {
2026-06-21T05:16:14.4130850Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4130945Z               "line": 9124
2026-06-21T05:16:14.4131026Z             },
2026-06-21T05:16:14.4131118Z             {
2026-06-21T05:16:14.4131217Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4131317Z               "line": 9162
2026-06-21T05:16:14.4131404Z             }
2026-06-21T05:16:14.4131485Z           ]
2026-06-21T05:16:14.4131570Z         }
2026-06-21T05:16:14.4131656Z       }
2026-06-21T05:16:14.4131846Z     },
2026-06-21T05:16:14.4131932Z     {
2026-06-21T05:16:14.4132029Z       "id": "REQ-SHELL-3",
2026-06-21T05:16:14.4133812Z       "title": "Drive channel (owner->shell, REST-only, never-spooled, latest-wins): the owner->shell mirror of sensory for continuous real-time control (scroll/crank/stick/avatar) — a [shell.drive] manifest vocab + EVENT_TYPE_DRIVE frame, delivered to the ONLINE binary only via a single live slot (a new frame supersedes an undelivered one — no spool, no queue, no replay on relink), dropped-with-diagnostic if the shell is offline; cross-node rides the ephemeral link (REST class), never the durable shell spool. Commands = discrete+durable; drive = continuous+ephemeral (CONTEXT:260, minted 2026-06-11 Gateway grill).",
2026-06-21T05:16:14.4133922Z       "requiredStages": [
2026-06-21T05:16:14.4134009Z         "impl",
2026-06-21T05:16:14.4134104Z         "unit",
2026-06-21T05:16:14.4134189Z         "int"
2026-06-21T05:16:14.4134271Z       ],
2026-06-21T05:16:14.4134366Z       "stages": {
2026-06-21T05:16:14.4134466Z         "doc": {
2026-06-21T05:16:14.4134562Z           "complete": false,
2026-06-21T05:16:14.4134662Z           "evidence": []
2026-06-21T05:16:14.4134756Z         },
2026-06-21T05:16:14.4134838Z         "impl": {
2026-06-21T05:16:14.4134934Z           "complete": true,
2026-06-21T05:16:14.4135023Z           "evidence": [
2026-06-21T05:16:14.4135128Z             {
2026-06-21T05:16:14.4135242Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.4135329Z               "line": 229
2026-06-21T05:16:14.4135414Z             },
2026-06-21T05:16:14.4135494Z             {
2026-06-21T05:16:14.4135614Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-21T05:16:14.4135695Z               "line": 36
2026-06-21T05:16:14.4135785Z             },
2026-06-21T05:16:14.4135867Z             {
2026-06-21T05:16:14.4135986Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-21T05:16:14.4136076Z               "line": 137
2026-06-21T05:16:14.4136163Z             },
2026-06-21T05:16:14.4136248Z             {
2026-06-21T05:16:14.4136353Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-21T05:16:14.4136448Z               "line": 153
2026-06-21T05:16:14.4136536Z             },
2026-06-21T05:16:14.4136625Z             {
2026-06-21T05:16:14.4136744Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-21T05:16:14.4136845Z               "line": 165
2026-06-21T05:16:14.4136930Z             },
2026-06-21T05:16:14.4137025Z             {
2026-06-21T05:16:14.4137145Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-21T05:16:14.4137231Z               "line": 242
2026-06-21T05:16:14.4137321Z             },
2026-06-21T05:16:14.4137410Z             {
2026-06-21T05:16:14.4137529Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-21T05:16:14.4137623Z               "line": 267
2026-06-21T05:16:14.4137703Z             },
2026-06-21T05:16:14.4137785Z             {
2026-06-21T05:16:14.4137900Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-21T05:16:14.4138004Z               "line": 293
2026-06-21T05:16:14.4138094Z             },
2026-06-21T05:16:14.4138177Z             {
2026-06-21T05:16:14.4138300Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-21T05:16:14.4138380Z               "line": 51
2026-06-21T05:16:14.4138567Z             },
2026-06-21T05:16:14.4138652Z             {
2026-06-21T05:16:14.4138768Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T05:16:14.4138863Z               "line": 333
2026-06-21T05:16:14.4139029Z             },
2026-06-21T05:16:14.4139120Z             {
2026-06-21T05:16:14.4139230Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T05:16:14.4139329Z               "line": 373
2026-06-21T05:16:14.4139426Z             },
2026-06-21T05:16:14.4139501Z             {
2026-06-21T05:16:14.4139620Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T05:16:14.4139708Z               "line": 602
2026-06-21T05:16:14.4139902Z             },
2026-06-21T05:16:14.4139984Z             {
2026-06-21T05:16:14.4140113Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-21T05:16:14.4140216Z               "line": 132
2026-06-21T05:16:14.4140296Z             },
2026-06-21T05:16:14.4140387Z             {
2026-06-21T05:16:14.4140519Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T05:16:14.4140613Z               "line": 448
2026-06-21T05:16:14.4140695Z             },
2026-06-21T05:16:14.4140776Z             {
2026-06-21T05:16:14.4140894Z               "path": "crates/spt-proto/src/event.rs",
2026-06-21T05:16:14.4140976Z               "line": 74
2026-06-21T05:16:14.4141068Z             },
2026-06-21T05:16:14.4141144Z             {
2026-06-21T05:16:14.4141257Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.4141344Z               "line": 605
2026-06-21T05:16:14.4141434Z             },
2026-06-21T05:16:14.4141529Z             {
2026-06-21T05:16:14.4141654Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.4141739Z               "line": 396
2026-06-21T05:16:14.4141816Z             },
2026-06-21T05:16:14.4141911Z             {
2026-06-21T05:16:14.4142007Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4142105Z               "line": 6518
2026-06-21T05:16:14.4142187Z             }
2026-06-21T05:16:14.4142270Z           ]
2026-06-21T05:16:14.4142360Z         },
2026-06-21T05:16:14.4142449Z         "int": {
2026-06-21T05:16:14.4142536Z           "complete": true,
2026-06-21T05:16:14.4142618Z           "evidence": [
2026-06-21T05:16:14.4142703Z             {
2026-06-21T05:16:14.4142830Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.4142916Z               "line": 1262
2026-06-21T05:16:14.4143006Z             },
2026-06-21T05:16:14.4143085Z             {
2026-06-21T05:16:14.4143204Z               "path": "crates/spt/tests/drive_e2e.rs",
2026-06-21T05:16:14.4143291Z               "line": 17
2026-06-21T05:16:14.4143377Z             }
2026-06-21T05:16:14.4143466Z           ]
2026-06-21T05:16:14.4143553Z         },
2026-06-21T05:16:14.4143643Z         "unit": {
2026-06-21T05:16:14.4143724Z           "complete": true,
2026-06-21T05:16:14.4143824Z           "evidence": [
2026-06-21T05:16:14.4143906Z             {
2026-06-21T05:16:14.4144025Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-21T05:16:14.4144124Z               "line": 311
2026-06-21T05:16:14.4144202Z             },
2026-06-21T05:16:14.4144287Z             {
2026-06-21T05:16:14.4144400Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-21T05:16:14.4144497Z               "line": 325
2026-06-21T05:16:14.4144579Z             },
2026-06-21T05:16:14.4144664Z             {
2026-06-21T05:16:14.4144787Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-21T05:16:14.4144879Z               "line": 343
2026-06-21T05:16:14.4144968Z             },
2026-06-21T05:16:14.4145049Z             {
2026-06-21T05:16:14.4145170Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-21T05:16:14.4145255Z               "line": 364
2026-06-21T05:16:14.4145336Z             },
2026-06-21T05:16:14.4145422Z             {
2026-06-21T05:16:14.4145537Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-21T05:16:14.4145739Z               "line": 376
2026-06-21T05:16:14.4145821Z             },
2026-06-21T05:16:14.4145908Z             {
2026-06-21T05:16:14.4146031Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T05:16:14.4146112Z               "line": 897
2026-06-21T05:16:14.4146198Z             },
2026-06-21T05:16:14.4146274Z             {
2026-06-21T05:16:14.4146388Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T05:16:14.4146475Z               "line": 957
2026-06-21T05:16:14.4146566Z             },
2026-06-21T05:16:14.4146650Z             {
2026-06-21T05:16:14.4146761Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-21T05:16:14.4146932Z               "line": 338
2026-06-21T05:16:14.4147003Z             },
2026-06-21T05:16:14.4147090Z             {
2026-06-21T05:16:14.4147204Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T05:16:14.4147299Z               "line": 769
2026-06-21T05:16:14.4147396Z             },
2026-06-21T05:16:14.4147481Z             {
2026-06-21T05:16:14.4147604Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4147696Z               "line": 8836
2026-06-21T05:16:14.4147786Z             }
2026-06-21T05:16:14.4147871Z           ]
2026-06-21T05:16:14.4147961Z         }
2026-06-21T05:16:14.4148057Z       }
2026-06-21T05:16:14.4148136Z     },
2026-06-21T05:16:14.4148231Z     {
2026-06-21T05:16:14.4148326Z       "id": "REQ-SHELL-4",
2026-06-21T05:16:14.4150157Z       "title": "Shell tunnel (reliable-ordered opaque byte stream): an owner<->shell link may hold a long-lived, reliable-ordered, link-bound QUIC stream pair carrying opaque wire protocol traffic the channel taxonomy must NOT reinterpret (first consumer usbip URB) — manifest opt-in, not enveloped, not MAC-framed, not spooled; the link lifecycle governs it (a link-break closes the tunnel). Reliable-ordered ⇒ congestion surfaces as lag never loss ⇒ acceptable only on-LAN: the on-LAN posture is documented and the tunnel is NOT proven cross-WAN (CONTEXT:262, minted 2026-06-11 Gateway grill; doyle gate C2).",
2026-06-21T05:16:14.4150273Z       "requiredStages": [
2026-06-21T05:16:14.4150358Z         "doc",
2026-06-21T05:16:14.4150442Z         "impl",
2026-06-21T05:16:14.4150529Z         "unit",
2026-06-21T05:16:14.4150621Z         "int"
2026-06-21T05:16:14.4150705Z       ],
2026-06-21T05:16:14.4150785Z       "stages": {
2026-06-21T05:16:14.4150876Z         "doc": {
2026-06-21T05:16:14.4150971Z           "complete": true,
2026-06-21T05:16:14.4151069Z           "evidence": [
2026-06-21T05:16:14.4151140Z             {
2026-06-21T05:16:14.4151236Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.4151336Z               "line": 281
2026-06-21T05:16:14.4151431Z             },
2026-06-21T05:16:14.4151522Z             {
2026-06-21T05:16:14.4151746Z               "path": "docs/adr/0020-event-envelope-sole-arriving-format-reply-to-removed.md",
2026-06-21T05:16:14.4151841Z               "line": 88
2026-06-21T05:16:14.4151928Z             }
2026-06-21T05:16:14.4152014Z           ]
2026-06-21T05:16:14.4152108Z         },
2026-06-21T05:16:14.4152195Z         "impl": {
2026-06-21T05:16:14.4152295Z           "complete": true,
2026-06-21T05:16:14.4152385Z           "evidence": [
2026-06-21T05:16:14.4152471Z             {
2026-06-21T05:16:14.4152591Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.4152675Z               "line": 243
2026-06-21T05:16:14.4152757Z             },
2026-06-21T05:16:14.4152844Z             {
2026-06-21T05:16:14.4152971Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-21T05:16:14.4153062Z               "line": 61
2026-06-21T05:16:14.4153140Z             },
2026-06-21T05:16:14.4153225Z             {
2026-06-21T05:16:14.4153347Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T05:16:14.4153447Z               "line": 218
2026-06-21T05:16:14.4153528Z             },
2026-06-21T05:16:14.4153613Z             {
2026-06-21T05:16:14.4153726Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T05:16:14.4153932Z               "line": 245
2026-06-21T05:16:14.4154007Z             },
2026-06-21T05:16:14.4154084Z             {
2026-06-21T05:16:14.4154208Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T05:16:14.4154298Z               "line": 566
2026-06-21T05:16:14.4154384Z             },
2026-06-21T05:16:14.4154466Z             {
2026-06-21T05:16:14.4154585Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T05:16:14.4154679Z               "line": 1141
2026-06-21T05:16:14.4154762Z             },
2026-06-21T05:16:14.4154852Z             {
2026-06-21T05:16:14.4154956Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T05:16:14.4155153Z               "line": 1153
2026-06-21T05:16:14.4155243Z             },
2026-06-21T05:16:14.4155329Z             {
2026-06-21T05:16:14.4155434Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T05:16:14.4155519Z               "line": 1194
2026-06-21T05:16:14.4155609Z             },
2026-06-21T05:16:14.4155687Z             {
2026-06-21T05:16:14.4155815Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T05:16:14.4155906Z               "line": 456
2026-06-21T05:16:14.4155987Z             },
2026-06-21T05:16:14.4156069Z             {
2026-06-21T05:16:14.4156186Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T05:16:14.4156281Z               "line": 44
2026-06-21T05:16:14.4156367Z             },
2026-06-21T05:16:14.4156449Z             {
2026-06-21T05:16:14.4156567Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T05:16:14.4156648Z               "line": 208
2026-06-21T05:16:14.4156735Z             },
2026-06-21T05:16:14.4156820Z             {
2026-06-21T05:16:14.4156948Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T05:16:14.4157026Z               "line": 227
2026-06-21T05:16:14.4157121Z             },
2026-06-21T05:16:14.4157201Z             {
2026-06-21T05:16:14.4157326Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T05:16:14.4157430Z               "line": 253
2026-06-21T05:16:14.4157515Z             },
2026-06-21T05:16:14.4157607Z             {
2026-06-21T05:16:14.4157721Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T05:16:14.4157816Z               "line": 272
2026-06-21T05:16:14.4157907Z             },
2026-06-21T05:16:14.4157999Z             {
2026-06-21T05:16:14.4158121Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T05:16:14.4158212Z               "line": 392
2026-06-21T05:16:14.4158300Z             },
2026-06-21T05:16:14.4158384Z             {
2026-06-21T05:16:14.4158506Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T05:16:14.4158587Z               "line": 421
2026-06-21T05:16:14.4158673Z             },
2026-06-21T05:16:14.4158762Z             {
2026-06-21T05:16:14.4158866Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T05:16:14.4159035Z               "line": 439
2026-06-21T05:16:14.4159129Z             },
2026-06-21T05:16:14.4159220Z             {
2026-06-21T05:16:14.4159339Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T05:16:14.4159434Z               "line": 458
2026-06-21T05:16:14.4159525Z             },
2026-06-21T05:16:14.4159606Z             {
2026-06-21T05:16:14.4159729Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T05:16:14.4159815Z               "line": 486
2026-06-21T05:16:14.4159908Z             },
2026-06-21T05:16:14.4159993Z             {
2026-06-21T05:16:14.4160121Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.4160217Z               "line": 624
2026-06-21T05:16:14.4160297Z             },
2026-06-21T05:16:14.4160378Z             {
2026-06-21T05:16:14.4160493Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.4160589Z               "line": 829
2026-06-21T05:16:14.4160674Z             },
2026-06-21T05:16:14.4160760Z             {
2026-06-21T05:16:14.4160885Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.4161070Z               "line": 435
2026-06-21T05:16:14.4161157Z             },
2026-06-21T05:16:14.4161237Z             {
2026-06-21T05:16:14.4161336Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4161431Z               "line": 6574
2026-06-21T05:16:14.4161517Z             }
2026-06-21T05:16:14.4161596Z           ]
2026-06-21T05:16:14.4161681Z         },
2026-06-21T05:16:14.4161772Z         "int": {
2026-06-21T05:16:14.4161868Z           "complete": true,
2026-06-21T05:16:14.4161963Z           "evidence": [
2026-06-21T05:16:14.4162043Z             {
2026-06-21T05:16:14.4162159Z               "path": "crates/spt/tests/tunnel_e2e.rs",
2026-06-21T05:16:14.4162353Z               "line": 18
2026-06-21T05:16:14.4162441Z             }
2026-06-21T05:16:14.4162521Z           ]
2026-06-21T05:16:14.4162602Z         },
2026-06-21T05:16:14.4162692Z         "unit": {
2026-06-21T05:16:14.4162793Z           "complete": true,
2026-06-21T05:16:14.4162888Z           "evidence": [
2026-06-21T05:16:14.4162983Z             {
2026-06-21T05:16:14.4163099Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T05:16:14.4163193Z               "line": 1391
2026-06-21T05:16:14.4163274Z             },
2026-06-21T05:16:14.4163361Z             {
2026-06-21T05:16:14.4163489Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T05:16:14.4163574Z               "line": 1420
2026-06-21T05:16:14.4163661Z             },
2026-06-21T05:16:14.4163747Z             {
2026-06-21T05:16:14.4163870Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T05:16:14.4163959Z               "line": 504
2026-06-21T05:16:14.4164046Z             },
2026-06-21T05:16:14.4164131Z             {
2026-06-21T05:16:14.4164238Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T05:16:14.4164329Z               "line": 514
2026-06-21T05:16:14.4164406Z             },
2026-06-21T05:16:14.4164492Z             {
2026-06-21T05:16:14.4164615Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T05:16:14.4164697Z               "line": 531
2026-06-21T05:16:14.4164787Z             },
2026-06-21T05:16:14.4164863Z             {
2026-06-21T05:16:14.4164988Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T05:16:14.4165074Z               "line": 543
2026-06-21T05:16:14.4165160Z             },
2026-06-21T05:16:14.4165235Z             {
2026-06-21T05:16:14.4165355Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-21T05:16:14.4165449Z               "line": 555
2026-06-21T05:16:14.4165535Z             },
2026-06-21T05:16:14.4165622Z             {
2026-06-21T05:16:14.4165751Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.4165845Z               "line": 1145
2026-06-21T05:16:14.4165927Z             },
2026-06-21T05:16:14.4166018Z             {
2026-06-21T05:16:14.4166137Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T05:16:14.4166228Z               "line": 776
2026-06-21T05:16:14.4166319Z             }
2026-06-21T05:16:14.4166408Z           ]
2026-06-21T05:16:14.4166499Z         }
2026-06-21T05:16:14.4166586Z       }
2026-06-21T05:16:14.4166676Z     },
2026-06-21T05:16:14.4166769Z     {
2026-06-21T05:16:14.4166855Z       "id": "REQ-SHELL-5",
2026-06-21T05:16:14.4168048Z       "title": "Shell ownership is owner-type-agnostic: any non-Shell endpoint type may own/spawn/drive/command/link a shell (Gateway the named first) — control-exclusivity keys on the owner endpoint_id, NEVER on the owner's endpoint type. No ownership path (mint, launch, owner-from-link, cmd, drive, tunnel, sleep/wake, owner-shutdown) inspects the owner's type (CONTEXT:264, ratified 2026-06-11 Gateway grill).",
2026-06-21T05:16:14.4168162Z       "requiredStages": [
2026-06-21T05:16:14.4168244Z         "doc",
2026-06-21T05:16:14.4168333Z         "impl",
2026-06-21T05:16:14.4168424Z         "unit",
2026-06-21T05:16:14.4168516Z         "int"
2026-06-21T05:16:14.4168597Z       ],
2026-06-21T05:16:14.4168796Z       "stages": {
2026-06-21T05:16:14.4168874Z         "doc": {
2026-06-21T05:16:14.4169062Z           "complete": true,
2026-06-21T05:16:14.4169157Z           "evidence": [
2026-06-21T05:16:14.4169243Z             {
2026-06-21T05:16:14.4169332Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.4169426Z               "line": 284
2026-06-21T05:16:14.4169504Z             }
2026-06-21T05:16:14.4169590Z           ]
2026-06-21T05:16:14.4169675Z         },
2026-06-21T05:16:14.4169756Z         "impl": {
2026-06-21T05:16:14.4169847Z           "complete": true,
2026-06-21T05:16:14.4169933Z           "evidence": [
2026-06-21T05:16:14.4170018Z             {
2026-06-21T05:16:14.4170243Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-21T05:16:14.4170333Z               "line": 260
2026-06-21T05:16:14.4170415Z             }
2026-06-21T05:16:14.4170496Z           ]
2026-06-21T05:16:14.4170586Z         },
2026-06-21T05:16:14.4170666Z         "int": {
2026-06-21T05:16:14.4170763Z           "complete": true,
2026-06-21T05:16:14.4170852Z           "evidence": [
2026-06-21T05:16:14.4170938Z             {
2026-06-21T05:16:14.4171063Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.4171149Z               "line": 827
2026-06-21T05:16:14.4171234Z             },
2026-06-21T05:16:14.4171320Z             {
2026-06-21T05:16:14.4171431Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.4171524Z               "line": 1290
2026-06-21T05:16:14.4171616Z             },
2026-06-21T05:16:14.4171698Z             {
2026-06-21T05:16:14.4171839Z               "path": "crates/spt/tests/gateway_owner_shell_e2e.rs",
2026-06-21T05:16:14.4171925Z               "line": 23
2026-06-21T05:16:14.4172010Z             }
2026-06-21T05:16:14.4172091Z           ]
2026-06-21T05:16:14.4172184Z         },
2026-06-21T05:16:14.4172274Z         "unit": {
2026-06-21T05:16:14.4172371Z           "complete": true,
2026-06-21T05:16:14.4172462Z           "evidence": [
2026-06-21T05:16:14.4172542Z             {
2026-06-21T05:16:14.4172671Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-21T05:16:14.4172753Z               "line": 803
2026-06-21T05:16:14.4172842Z             }
2026-06-21T05:16:14.4172937Z           ]
2026-06-21T05:16:14.4173020Z         }
2026-06-21T05:16:14.4173110Z       }
2026-06-21T05:16:14.4173190Z     },
2026-06-21T05:16:14.4173272Z     {
2026-06-21T05:16:14.4173358Z       "id": "REQ-START-1",
2026-06-21T05:16:14.4173557Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-21T05:16:14.4173655Z       "requiredStages": [
2026-06-21T05:16:14.4173734Z         "impl",
2026-06-21T05:16:14.4173825Z         "unit"
2026-06-21T05:16:14.4173906Z       ],
2026-06-21T05:16:14.4174007Z       "stages": {
2026-06-21T05:16:14.4174087Z         "doc": {
2026-06-21T05:16:14.4174187Z           "complete": false,
2026-06-21T05:16:14.4174265Z           "evidence": []
2026-06-21T05:16:14.4174355Z         },
2026-06-21T05:16:14.4174449Z         "impl": {
2026-06-21T05:16:14.4174539Z           "complete": true,
2026-06-21T05:16:14.4174634Z           "evidence": [
2026-06-21T05:16:14.4174709Z             {
2026-06-21T05:16:14.4174827Z               "path": "crates/spt-store/src/seed.rs",
2026-06-21T05:16:14.4174913Z               "line": 16
2026-06-21T05:16:14.4175000Z             }
2026-06-21T05:16:14.4175080Z           ]
2026-06-21T05:16:14.4175161Z         },
2026-06-21T05:16:14.4175257Z         "int": {
2026-06-21T05:16:14.4175348Z           "complete": false,
2026-06-21T05:16:14.4175447Z           "evidence": []
2026-06-21T05:16:14.4175533Z         },
2026-06-21T05:16:14.4175629Z         "unit": {
2026-06-21T05:16:14.4179190Z           "complete": true,
2026-06-21T05:16:14.4179303Z           "evidence": [
2026-06-21T05:16:14.4179396Z             {
2026-06-21T05:16:14.4179528Z               "path": "crates/spt-store/src/seed.rs",
2026-06-21T05:16:14.4179627Z               "line": 48
2026-06-21T05:16:14.4179722Z             },
2026-06-21T05:16:14.4179968Z             {
2026-06-21T05:16:14.4180088Z               "path": "crates/spt-store/src/seed.rs",
2026-06-21T05:16:14.4180174Z               "line": 63
2026-06-21T05:16:14.4180259Z             }
2026-06-21T05:16:14.4180345Z           ]
2026-06-21T05:16:14.4180431Z         }
2026-06-21T05:16:14.4180517Z       }
2026-06-21T05:16:14.4180607Z     },
2026-06-21T05:16:14.4180689Z     {
2026-06-21T05:16:14.4180784Z       "id": "REQ-START-2",
2026-06-21T05:16:14.4180931Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-21T05:16:14.4181028Z       "requiredStages": [
2026-06-21T05:16:14.4181108Z         "impl",
2026-06-21T05:16:14.4181284Z         "unit",
2026-06-21T05:16:14.4181380Z         "int"
2026-06-21T05:16:14.4181471Z       ],
2026-06-21T05:16:14.4181551Z       "stages": {
2026-06-21T05:16:14.4181633Z         "doc": {
2026-06-21T05:16:14.4181732Z           "complete": false,
2026-06-21T05:16:14.4181828Z           "evidence": []
2026-06-21T05:16:14.4181919Z         },
2026-06-21T05:16:14.4182005Z         "impl": {
2026-06-21T05:16:14.4182099Z           "complete": true,
2026-06-21T05:16:14.4182190Z           "evidence": [
2026-06-21T05:16:14.4182263Z             {
2026-06-21T05:16:14.4182376Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.4182471Z               "line": 16
2026-06-21T05:16:14.4182551Z             },
2026-06-21T05:16:14.4182637Z             {
2026-06-21T05:16:14.4182754Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.4182839Z               "line": 115
2026-06-21T05:16:14.4182926Z             },
2026-06-21T05:16:14.4182998Z             {
2026-06-21T05:16:14.4183116Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.4183202Z               "line": 300
2026-06-21T05:16:14.4183293Z             }
2026-06-21T05:16:14.4183384Z           ]
2026-06-21T05:16:14.4183460Z         },
2026-06-21T05:16:14.4183546Z         "int": {
2026-06-21T05:16:14.4183632Z           "complete": true,
2026-06-21T05:16:14.4183722Z           "evidence": [
2026-06-21T05:16:14.4183798Z             {
2026-06-21T05:16:14.4183923Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-21T05:16:14.4184008Z               "line": 186
2026-06-21T05:16:14.4184094Z             }
2026-06-21T05:16:14.4184180Z           ]
2026-06-21T05:16:14.4184261Z         },
2026-06-21T05:16:14.4184337Z         "unit": {
2026-06-21T05:16:14.4184428Z           "complete": true,
2026-06-21T05:16:14.4184500Z           "evidence": [
2026-06-21T05:16:14.4184586Z             {
2026-06-21T05:16:14.4184694Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.4184791Z               "line": 590
2026-06-21T05:16:14.4184877Z             },
2026-06-21T05:16:14.4184957Z             {
2026-06-21T05:16:14.4185070Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.4185156Z               "line": 623
2026-06-21T05:16:14.4185241Z             }
2026-06-21T05:16:14.4185326Z           ]
2026-06-21T05:16:14.4185411Z         }
2026-06-21T05:16:14.4185498Z       }
2026-06-21T05:16:14.4185584Z     },
2026-06-21T05:16:14.4185669Z     {
2026-06-21T05:16:14.4185760Z       "id": "REQ-START-3",
2026-06-21T05:16:14.4185941Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-21T05:16:14.4186031Z       "requiredStages": [
2026-06-21T05:16:14.4186123Z         "impl",
2026-06-21T05:16:14.4186208Z         "unit",
2026-06-21T05:16:14.4186298Z         "int"
2026-06-21T05:16:14.4186384Z       ],
2026-06-21T05:16:14.4186475Z       "stages": {
2026-06-21T05:16:14.4186561Z         "doc": {
2026-06-21T05:16:14.4186656Z           "complete": false,
2026-06-21T05:16:14.4186757Z           "evidence": []
2026-06-21T05:16:14.4186833Z         },
2026-06-21T05:16:14.4186923Z         "impl": {
2026-06-21T05:16:14.4187018Z           "complete": true,
2026-06-21T05:16:14.4187115Z           "evidence": [
2026-06-21T05:16:14.4187204Z             {
2026-06-21T05:16:14.4187328Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-21T05:16:14.4187495Z               "line": 23
2026-06-21T05:16:14.4187571Z             },
2026-06-21T05:16:14.4187653Z             {
2026-06-21T05:16:14.4187768Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-21T05:16:14.4187862Z               "line": 205
2026-06-21T05:16:14.4187942Z             },
2026-06-21T05:16:14.4188028Z             {
2026-06-21T05:16:14.4188139Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-21T05:16:14.4188219Z               "line": 221
2026-06-21T05:16:14.4188305Z             },
2026-06-21T05:16:14.4188391Z             {
2026-06-21T05:16:14.4188492Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.4188643Z               "line": 17
2026-06-21T05:16:14.4188730Z             },
2026-06-21T05:16:14.4188816Z             {
2026-06-21T05:16:14.4188924Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.4189087Z               "line": 35
2026-06-21T05:16:14.4189173Z             },
2026-06-21T05:16:14.4189258Z             {
2026-06-21T05:16:14.4189364Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.4189449Z               "line": 116
2026-06-21T05:16:14.4189539Z             }
2026-06-21T05:16:14.4189622Z           ]
2026-06-21T05:16:14.4189707Z         },
2026-06-21T05:16:14.4189796Z         "int": {
2026-06-21T05:16:14.4189888Z           "complete": true,
2026-06-21T05:16:14.4189984Z           "evidence": [
2026-06-21T05:16:14.4190064Z             {
2026-06-21T05:16:14.4190178Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-21T05:16:14.4190264Z               "line": 488
2026-06-21T05:16:14.4190354Z             }
2026-06-21T05:16:14.4190438Z           ]
2026-06-21T05:16:14.4190518Z         },
2026-06-21T05:16:14.4190605Z         "unit": {
2026-06-21T05:16:14.4190686Z           "complete": true,
2026-06-21T05:16:14.4190771Z           "evidence": [
2026-06-21T05:16:14.4190852Z             {
2026-06-21T05:16:14.4190973Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-21T05:16:14.4191063Z               "line": 381
2026-06-21T05:16:14.4191148Z             },
2026-06-21T05:16:14.4191230Z             {
2026-06-21T05:16:14.4191339Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-21T05:16:14.4191424Z               "line": 402
2026-06-21T05:16:14.4191501Z             },
2026-06-21T05:16:14.4191588Z             {
2026-06-21T05:16:14.4191707Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-21T05:16:14.4191791Z               "line": 412
2026-06-21T05:16:14.4191874Z             },
2026-06-21T05:16:14.4191950Z             {
2026-06-21T05:16:14.4192064Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.4192154Z               "line": 591
2026-06-21T05:16:14.4192241Z             },
2026-06-21T05:16:14.4192325Z             {
2026-06-21T05:16:14.4192435Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.4192527Z               "line": 624
2026-06-21T05:16:14.4192617Z             },
2026-06-21T05:16:14.4192703Z             {
2026-06-21T05:16:14.4192813Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.4192909Z               "line": 657
2026-06-21T05:16:14.4192983Z             }
2026-06-21T05:16:14.4193064Z           ]
2026-06-21T05:16:14.4193154Z         }
2026-06-21T05:16:14.4193235Z       }
2026-06-21T05:16:14.4193324Z     },
2026-06-21T05:16:14.4193390Z     {
2026-06-21T05:16:14.4193491Z       "id": "REQ-START-4",
2026-06-21T05:16:14.4193634Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-21T05:16:14.4193724Z       "requiredStages": [
2026-06-21T05:16:14.4193811Z         "impl",
2026-06-21T05:16:14.4193896Z         "unit"
2026-06-21T05:16:14.4193977Z       ],
2026-06-21T05:16:14.4194062Z       "stages": {
2026-06-21T05:16:14.4194150Z         "doc": {
2026-06-21T05:16:14.4194245Z           "complete": false,
2026-06-21T05:16:14.4194329Z           "evidence": []
2026-06-21T05:16:14.4194411Z         },
2026-06-21T05:16:14.4194597Z         "impl": {
2026-06-21T05:16:14.4194683Z           "complete": true,
2026-06-21T05:16:14.4194770Z           "evidence": [
2026-06-21T05:16:14.4194859Z             {
2026-06-21T05:16:14.4194988Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.4195080Z               "line": 585
2026-06-21T05:16:14.4195165Z             }
2026-06-21T05:16:14.4195250Z           ]
2026-06-21T05:16:14.4195331Z         },
2026-06-21T05:16:14.4195414Z         "int": {
2026-06-21T05:16:14.4195512Z           "complete": false,
2026-06-21T05:16:14.4195598Z           "evidence": []
2026-06-21T05:16:14.4195673Z         },
2026-06-21T05:16:14.4195871Z         "unit": {
2026-06-21T05:16:14.4195966Z           "complete": true,
2026-06-21T05:16:14.4196053Z           "evidence": [
2026-06-21T05:16:14.4196135Z             {
2026-06-21T05:16:14.4196258Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.4196343Z               "line": 1026
2026-06-21T05:16:14.4196435Z             }
2026-06-21T05:16:14.4196520Z           ]
2026-06-21T05:16:14.4196605Z         }
2026-06-21T05:16:14.4196693Z       }
2026-06-21T05:16:14.4196773Z     },
2026-06-21T05:16:14.4196863Z     {
2026-06-21T05:16:14.4196954Z       "id": "REQ-START-5",
2026-06-21T05:16:14.4199833Z       "title": "Adapter-agnostic harness-hosted seed + bind-time adapter/profile resolution (ADR-0021): `api seed` carries only parent_pid + session_id (+ optional cwd), no --adapter — a pure \"a harness session exists at this pid\" record; --adapter becomes an OPTIONAL override across the whole api group (an explicit name[:profile] for adapter dev, never required). Omitted, listen/poll resolve the owning adapter/profile AT BIND as a pure read against the live registry — never a seed-time snapshot that can drift: seed parent_pid → exe basename → host_binaries candidate set (REQ-MANIFEST-8) → active-profile pointer (REQ-INSTALL-12) primary, else greatest-registered_at_ms candidate base profile (name-asc tie) → friendly zero-match error. Covers BOTH LiveAgent (listen) and ReadyAgent (poll) bringup. Restores legacy parity: `$LIVE start <id>` → `$SPT listen <id>` with no mandatory --adapter, one generic SessionStart hook per harness binary. (v0.9.0)",
2026-06-21T05:16:14.4199938Z       "requiredStages": [
2026-06-21T05:16:14.4200023Z         "doc",
2026-06-21T05:16:14.4200109Z         "impl",
2026-06-21T05:16:14.4200192Z         "unit",
2026-06-21T05:16:14.4200272Z         "int"
2026-06-21T05:16:14.4200357Z       ],
2026-06-21T05:16:14.4200438Z       "stages": {
2026-06-21T05:16:14.4200526Z         "doc": {
2026-06-21T05:16:14.4200624Z           "complete": true,
2026-06-21T05:16:14.4200714Z           "evidence": [
2026-06-21T05:16:14.4200799Z             {
2026-06-21T05:16:14.4200900Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.4200993Z               "line": 176
2026-06-21T05:16:14.4201074Z             },
2026-06-21T05:16:14.4201146Z             {
2026-06-21T05:16:14.4201290Z               "path": "docs-site/src/harness-contract/api.md",
2026-06-21T05:16:14.4201379Z               "line": 28
2026-06-21T05:16:14.4201470Z             }
2026-06-21T05:16:14.4201552Z           ]
2026-06-21T05:16:14.4201632Z         },
2026-06-21T05:16:14.4201717Z         "impl": {
2026-06-21T05:16:14.4201804Z           "complete": true,
2026-06-21T05:16:14.4201899Z           "evidence": [
2026-06-21T05:16:14.4201975Z             {
2026-06-21T05:16:14.4202110Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T05:16:14.4202200Z               "line": 26
2026-06-21T05:16:14.4202285Z             },
2026-06-21T05:16:14.4202376Z             {
2026-06-21T05:16:14.4202491Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T05:16:14.4202581Z               "line": 212
2026-06-21T05:16:14.4202666Z             },
2026-06-21T05:16:14.4202749Z             {
2026-06-21T05:16:14.4202853Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T05:16:14.4202939Z               "line": 221
2026-06-21T05:16:14.4203130Z             },
2026-06-21T05:16:14.4203215Z             {
2026-06-21T05:16:14.4203325Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T05:16:14.4203402Z               "line": 485
2026-06-21T05:16:14.4203488Z             },
2026-06-21T05:16:14.4203553Z             {
2026-06-21T05:16:14.4203676Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.4203753Z               "line": 36
2026-06-21T05:16:14.4203842Z             },
2026-06-21T05:16:14.4203922Z             {
2026-06-21T05:16:14.4204037Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.4204128Z               "line": 118
2026-06-21T05:16:14.4204303Z             },
2026-06-21T05:16:14.4204395Z             {
2026-06-21T05:16:14.4204500Z               "path": "crates/spt/src/api/startup.rs",
2026-06-21T05:16:14.4204589Z               "line": 329
2026-06-21T05:16:14.4204667Z             }
2026-06-21T05:16:14.4204752Z           ]
2026-06-21T05:16:14.4204833Z         },
2026-06-21T05:16:14.4204923Z         "int": {
2026-06-21T05:16:14.4205024Z           "complete": true,
2026-06-21T05:16:14.4205109Z           "evidence": [
2026-06-21T05:16:14.4205195Z             {
2026-06-21T05:16:14.4205325Z               "path": "crates/spt/tests/live_resolve_e2e.rs",
2026-06-21T05:16:14.4205405Z               "line": 17
2026-06-21T05:16:14.4205491Z             }
2026-06-21T05:16:14.4205577Z           ]
2026-06-21T05:16:14.4205659Z         },
2026-06-21T05:16:14.4205753Z         "unit": {
2026-06-21T05:16:14.4205839Z           "complete": true,
2026-06-21T05:16:14.4205936Z           "evidence": [
2026-06-21T05:16:14.4206021Z             {
2026-06-21T05:16:14.4206143Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T05:16:14.4206233Z               "line": 358
2026-06-21T05:16:14.4206329Z             },
2026-06-21T05:16:14.4206417Z             {
2026-06-21T05:16:14.4206531Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-21T05:16:14.4206623Z               "line": 371
2026-06-21T05:16:14.4206709Z             },
2026-06-21T05:16:14.4206803Z             {
2026-06-21T05:16:14.4206913Z               "path": "crates/spt/src/api/mod.rs",
2026-06-21T05:16:14.4207004Z               "line": 597
2026-06-21T05:16:14.4207075Z             }
2026-06-21T05:16:14.4207151Z           ]
2026-06-21T05:16:14.4207238Z         }
2026-06-21T05:16:14.4207319Z       }
2026-06-21T05:16:14.4207395Z     },
2026-06-21T05:16:14.4207480Z     {
2026-06-21T05:16:14.4207577Z       "id": "REQ-STORE-1",
2026-06-21T05:16:14.4208430Z       "title": "spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)",
2026-06-21T05:16:14.4208526Z       "requiredStages": [
2026-06-21T05:16:14.4208601Z         "impl",
2026-06-21T05:16:14.4208696Z         "unit"
2026-06-21T05:16:14.4208783Z       ],
2026-06-21T05:16:14.4208870Z       "stages": {
2026-06-21T05:16:14.4209039Z         "doc": {
2026-06-21T05:16:14.4209143Z           "complete": false,
2026-06-21T05:16:14.4209230Z           "evidence": []
2026-06-21T05:16:14.4209311Z         },
2026-06-21T05:16:14.4209405Z         "impl": {
2026-06-21T05:16:14.4209487Z           "complete": true,
2026-06-21T05:16:14.4209573Z           "evidence": [
2026-06-21T05:16:14.4209654Z             {
2026-06-21T05:16:14.4209783Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T05:16:14.4209860Z               "line": 23
2026-06-21T05:16:14.4209941Z             },
2026-06-21T05:16:14.4210026Z             {
2026-06-21T05:16:14.4210146Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T05:16:14.4210236Z               "line": 46
2026-06-21T05:16:14.4210312Z             },
2026-06-21T05:16:14.4210398Z             {
2026-06-21T05:16:14.4210518Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T05:16:14.4210708Z               "line": 97
2026-06-21T05:16:14.4210781Z             },
2026-06-21T05:16:14.4210856Z             {
2026-06-21T05:16:14.4210980Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T05:16:14.4211061Z               "line": 125
2026-06-21T05:16:14.4211147Z             },
2026-06-21T05:16:14.4211232Z             {
2026-06-21T05:16:14.4211350Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T05:16:14.4211445Z               "line": 207
2026-06-21T05:16:14.4211530Z             },
2026-06-21T05:16:14.4211620Z             {
2026-06-21T05:16:14.4211725Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T05:16:14.4211901Z               "line": 231
2026-06-21T05:16:14.4211987Z             },
2026-06-21T05:16:14.4212073Z             {
2026-06-21T05:16:14.4212197Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T05:16:14.4212282Z               "line": 467
2026-06-21T05:16:14.4212369Z             },
2026-06-21T05:16:14.4212455Z             {
2026-06-21T05:16:14.4212587Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T05:16:14.4212665Z               "line": 25
2026-06-21T05:16:14.4212755Z             },
2026-06-21T05:16:14.4212836Z             {
2026-06-21T05:16:14.4212955Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T05:16:14.4213046Z               "line": 120
2026-06-21T05:16:14.4213131Z             },
2026-06-21T05:16:14.4213208Z             {
2026-06-21T05:16:14.4213333Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T05:16:14.4213422Z               "line": 148
2026-06-21T05:16:14.4213513Z             },
2026-06-21T05:16:14.4213590Z             {
2026-06-21T05:16:14.4213709Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T05:16:14.4213794Z               "line": 165
2026-06-21T05:16:14.4213875Z             },
2026-06-21T05:16:14.4213963Z             {
2026-06-21T05:16:14.4214085Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T05:16:14.4214184Z               "line": 180
2026-06-21T05:16:14.4214270Z             },
2026-06-21T05:16:14.4214360Z             {
2026-06-21T05:16:14.4214477Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T05:16:14.4214568Z               "line": 198
2026-06-21T05:16:14.4214655Z             },
2026-06-21T05:16:14.4214740Z             {
2026-06-21T05:16:14.4214868Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T05:16:14.4214960Z               "line": 207
2026-06-21T05:16:14.4215041Z             },
2026-06-21T05:16:14.4215116Z             {
2026-06-21T05:16:14.4215246Z               "path": "crates/spt-store/src/project.rs",
2026-06-21T05:16:14.4215336Z               "line": 16
2026-06-21T05:16:14.4215422Z             },
2026-06-21T05:16:14.4215507Z             {
2026-06-21T05:16:14.4215618Z               "path": "crates/spt-store/src/project.rs",
2026-06-21T05:16:14.4215713Z               "line": 63
2026-06-21T05:16:14.4215793Z             }
2026-06-21T05:16:14.4215885Z           ]
2026-06-21T05:16:14.4215970Z         },
2026-06-21T05:16:14.4216056Z         "int": {
2026-06-21T05:16:14.4216151Z           "complete": false,
2026-06-21T05:16:14.4216248Z           "evidence": []
2026-06-21T05:16:14.4216341Z         },
2026-06-21T05:16:14.4216428Z         "unit": {
2026-06-21T05:16:14.4216524Z           "complete": true,
2026-06-21T05:16:14.4216619Z           "evidence": [
2026-06-21T05:16:14.4216703Z             {
2026-06-21T05:16:14.4216827Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T05:16:14.4216918Z               "line": 584
2026-06-21T05:16:14.4217006Z             },
2026-06-21T05:16:14.4217087Z             {
2026-06-21T05:16:14.4217212Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T05:16:14.4217307Z               "line": 594
2026-06-21T05:16:14.4217387Z             },
2026-06-21T05:16:14.4217473Z             {
2026-06-21T05:16:14.4217578Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T05:16:14.4217744Z               "line": 616
2026-06-21T05:16:14.4217832Z             },
2026-06-21T05:16:14.4217917Z             {
2026-06-21T05:16:14.4218040Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T05:16:14.4218127Z               "line": 632
2026-06-21T05:16:14.4218217Z             },
2026-06-21T05:16:14.4218298Z             {
2026-06-21T05:16:14.4218428Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-21T05:16:14.4218518Z               "line": 690
2026-06-21T05:16:14.4218604Z             },
2026-06-21T05:16:14.4218685Z             {
2026-06-21T05:16:14.4218889Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T05:16:14.4219067Z               "line": 472
2026-06-21T05:16:14.4219153Z             },
2026-06-21T05:16:14.4219232Z             {
2026-06-21T05:16:14.4219363Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-21T05:16:14.4219449Z               "line": 507
2026-06-21T05:16:14.4219546Z             },
2026-06-21T05:16:14.4219618Z             {
2026-06-21T05:16:14.4219738Z               "path": "crates/spt-store/src/project.rs",
2026-06-21T05:16:14.4219819Z               "line": 120
2026-06-21T05:16:14.4219904Z             },
2026-06-21T05:16:14.4219990Z             {
2026-06-21T05:16:14.4220100Z               "path": "crates/spt-store/src/project.rs",
2026-06-21T05:16:14.4220195Z               "line": 128
2026-06-21T05:16:14.4220280Z             }
2026-06-21T05:16:14.4220363Z           ]
2026-06-21T05:16:14.4220448Z         }
2026-06-21T05:16:14.4220524Z       }
2026-06-21T05:16:14.4220614Z     },
2026-06-21T05:16:14.4220706Z     {
2026-06-21T05:16:14.4220801Z       "id": "REQ-SUBNET-1",
2026-06-21T05:16:14.4221110Z       "title": "spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted",
2026-06-21T05:16:14.4221215Z       "requiredStages": [
2026-06-21T05:16:14.4221297Z         "impl",
2026-06-21T05:16:14.4221383Z         "unit"
2026-06-21T05:16:14.4221468Z       ],
2026-06-21T05:16:14.4221549Z       "stages": {
2026-06-21T05:16:14.4221641Z         "doc": {
2026-06-21T05:16:14.4221740Z           "complete": false,
2026-06-21T05:16:14.4221844Z           "evidence": []
2026-06-21T05:16:14.4221920Z         },
2026-06-21T05:16:14.4222015Z         "impl": {
2026-06-21T05:16:14.4222113Z           "complete": true,
2026-06-21T05:16:14.4222203Z           "evidence": [
2026-06-21T05:16:14.4222295Z             {
2026-06-21T05:16:14.4222428Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.4222523Z               "line": 281
2026-06-21T05:16:14.4222610Z             },
2026-06-21T05:16:14.4222696Z             {
2026-06-21T05:16:14.4222823Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.4222905Z               "line": 651
2026-06-21T05:16:14.4222991Z             },
2026-06-21T05:16:14.4223076Z             {
2026-06-21T05:16:14.4223191Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4223277Z               "line": 3399
2026-06-21T05:16:14.4223372Z             },
2026-06-21T05:16:14.4223462Z             {
2026-06-21T05:16:14.4223549Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4223644Z               "line": 3709
2026-06-21T05:16:14.4223720Z             },
2026-06-21T05:16:14.4223810Z             {
2026-06-21T05:16:14.4223902Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4223997Z               "line": 3728
2026-06-21T05:16:14.4224078Z             },
2026-06-21T05:16:14.4224164Z             {
2026-06-21T05:16:14.4224265Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4224359Z               "line": 3792
2026-06-21T05:16:14.4224440Z             },
2026-06-21T05:16:14.4224528Z             {
2026-06-21T05:16:14.4224636Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4224720Z               "line": 3834
2026-06-21T05:16:14.4224806Z             },
2026-06-21T05:16:14.4224990Z             {
2026-06-21T05:16:14.4225094Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4225176Z               "line": 4023
2026-06-21T05:16:14.4225262Z             },
2026-06-21T05:16:14.4225343Z             {
2026-06-21T05:16:14.4225447Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4225530Z               "line": 4093
2026-06-21T05:16:14.4225620Z             },
2026-06-21T05:16:14.4225704Z             {
2026-06-21T05:16:14.4225811Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4225906Z               "line": 4317
2026-06-21T05:16:14.4225982Z             },
2026-06-21T05:16:14.4226178Z             {
2026-06-21T05:16:14.4226283Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4226378Z               "line": 4961
2026-06-21T05:16:14.4226464Z             },
2026-06-21T05:16:14.4226549Z             {
2026-06-21T05:16:14.4226663Z               "path": "crates/spt/src/wansend.rs",
2026-06-21T05:16:14.4226760Z               "line": 418
2026-06-21T05:16:14.4226850Z             }
2026-06-21T05:16:14.4226935Z           ]
2026-06-21T05:16:14.4227022Z         },
2026-06-21T05:16:14.4227103Z         "int": {
2026-06-21T05:16:14.4227198Z           "complete": false,
2026-06-21T05:16:14.4227297Z           "evidence": []
2026-06-21T05:16:14.4227383Z         },
2026-06-21T05:16:14.4227473Z         "unit": {
2026-06-21T05:16:14.4227566Z           "complete": true,
2026-06-21T05:16:14.4227661Z           "evidence": [
2026-06-21T05:16:14.4227738Z             {
2026-06-21T05:16:14.4227867Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.4227962Z               "line": 1584
2026-06-21T05:16:14.4228039Z             },
2026-06-21T05:16:14.4228120Z             {
2026-06-21T05:16:14.4228228Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4228314Z               "line": 9964
2026-06-21T05:16:14.4228397Z             },
2026-06-21T05:16:14.4228487Z             {
2026-06-21T05:16:14.4228600Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4228683Z               "line": 10134
2026-06-21T05:16:14.4228768Z             },
2026-06-21T05:16:14.4228854Z             {
2026-06-21T05:16:14.4229031Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4229120Z               "line": 10141
2026-06-21T05:16:14.4229201Z             },
2026-06-21T05:16:14.4229283Z             {
2026-06-21T05:16:14.4229389Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4229483Z               "line": 10194
2026-06-21T05:16:14.4229564Z             },
2026-06-21T05:16:14.4229651Z             {
2026-06-21T05:16:14.4229755Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4229860Z               "line": 10211
2026-06-21T05:16:14.4229956Z             },
2026-06-21T05:16:14.4230037Z             {
2026-06-21T05:16:14.4230140Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4230230Z               "line": 10241
2026-06-21T05:16:14.4230317Z             },
2026-06-21T05:16:14.4230398Z             {
2026-06-21T05:16:14.4230502Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4230593Z               "line": 10357
2026-06-21T05:16:14.4230670Z             },
2026-06-21T05:16:14.4230750Z             {
2026-06-21T05:16:14.4230855Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4230952Z               "line": 10508
2026-06-21T05:16:14.4231037Z             }
2026-06-21T05:16:14.4231122Z           ]
2026-06-21T05:16:14.4231208Z         }
2026-06-21T05:16:14.4231290Z       }
2026-06-21T05:16:14.4231380Z     },
2026-06-21T05:16:14.4231460Z     {
2026-06-21T05:16:14.4231562Z       "id": "REQ-SUBNET-2",
2026-06-21T05:16:14.4231795Z       "title": "Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder",
2026-06-21T05:16:14.4231896Z       "requiredStages": [
2026-06-21T05:16:14.4231985Z         "impl",
2026-06-21T05:16:14.4232071Z         "unit",
2026-06-21T05:16:14.4232157Z         "int"
2026-06-21T05:16:14.4232338Z       ],
2026-06-21T05:16:14.4232427Z       "stages": {
2026-06-21T05:16:14.4232518Z         "doc": {
2026-06-21T05:16:14.4232617Z           "complete": true,
2026-06-21T05:16:14.4232707Z           "evidence": [
2026-06-21T05:16:14.4232792Z             {
2026-06-21T05:16:14.4232951Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-21T05:16:14.4233031Z               "line": 60
2026-06-21T05:16:14.4233117Z             }
2026-06-21T05:16:14.4233198Z           ]
2026-06-21T05:16:14.4233289Z         },
2026-06-21T05:16:14.4233379Z         "impl": {
2026-06-21T05:16:14.4233460Z           "complete": true,
2026-06-21T05:16:14.4233689Z           "evidence": [
2026-06-21T05:16:14.4233775Z             {
2026-06-21T05:16:14.4233899Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T05:16:14.4233989Z               "line": 886
2026-06-21T05:16:14.4234075Z             },
2026-06-21T05:16:14.4234166Z             {
2026-06-21T05:16:14.4234280Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.4234380Z               "line": 1948
2026-06-21T05:16:14.4234463Z             },
2026-06-21T05:16:14.4234542Z             {
2026-06-21T05:16:14.4234662Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T05:16:14.4234754Z               "line": 633
2026-06-21T05:16:14.4234834Z             },
2026-06-21T05:16:14.4234914Z             {
2026-06-21T05:16:14.4235025Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-21T05:16:14.4235116Z               "line": 817
2026-06-21T05:16:14.4235205Z             },
2026-06-21T05:16:14.4235285Z             {
2026-06-21T05:16:14.4235414Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T05:16:14.4235503Z               "line": 26
2026-06-21T05:16:14.4235588Z             },
2026-06-21T05:16:14.4235674Z             {
2026-06-21T05:16:14.4235785Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T05:16:14.4235884Z               "line": 60
2026-06-21T05:16:14.4235959Z             },
2026-06-21T05:16:14.4236042Z             {
2026-06-21T05:16:14.4236166Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T05:16:14.4236255Z               "line": 168
2026-06-21T05:16:14.4236347Z             },
2026-06-21T05:16:14.4236437Z             {
2026-06-21T05:16:14.4236561Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T05:16:14.4236651Z               "line": 295
2026-06-21T05:16:14.4236743Z             },
2026-06-21T05:16:14.4236828Z             {
2026-06-21T05:16:14.4236947Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T05:16:14.4237048Z               "line": 417
2026-06-21T05:16:14.4237138Z             },
2026-06-21T05:16:14.4237223Z             {
2026-06-21T05:16:14.4237348Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-21T05:16:14.4237443Z               "line": 252
2026-06-21T05:16:14.4237529Z             },
2026-06-21T05:16:14.4237616Z             {
2026-06-21T05:16:14.4237725Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4237809Z               "line": 3755
2026-06-21T05:16:14.4237895Z             },
2026-06-21T05:16:14.4237985Z             {
2026-06-21T05:16:14.4238089Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4238188Z               "line": 4256
2026-06-21T05:16:14.4238265Z             },
2026-06-21T05:16:14.4238351Z             {
2026-06-21T05:16:14.4238451Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4238550Z               "line": 4892
2026-06-21T05:16:14.4238637Z             }
2026-06-21T05:16:14.4238723Z           ]
2026-06-21T05:16:14.4238807Z         },
2026-06-21T05:16:14.4238899Z         "int": {
2026-06-21T05:16:14.4239071Z           "complete": true,
2026-06-21T05:16:14.4239156Z           "evidence": [
2026-06-21T05:16:14.4239243Z             {
2026-06-21T05:16:14.4239370Z               "path": "crates/spt-daemon/tests/pairjoin.rs",
2026-06-21T05:16:14.4239461Z               "line": 22
2026-06-21T05:16:14.4239657Z             },
2026-06-21T05:16:14.4239738Z             {
2026-06-21T05:16:14.4239868Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.4239949Z               "line": 645
2026-06-21T05:16:14.4240038Z             },
2026-06-21T05:16:14.4240119Z             {
2026-06-21T05:16:14.4240235Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.4240324Z               "line": 887
2026-06-21T05:16:14.4240401Z             }
2026-06-21T05:16:14.4240488Z           ]
2026-06-21T05:16:14.4240574Z         },
2026-06-21T05:16:14.4240658Z         "unit": {
2026-06-21T05:16:14.4240757Z           "complete": true,
2026-06-21T05:16:14.4240945Z           "evidence": [
2026-06-21T05:16:14.4241033Z             {
2026-06-21T05:16:14.4241149Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T05:16:14.4241239Z               "line": 586
2026-06-21T05:16:14.4241320Z             },
2026-06-21T05:16:14.4241401Z             {
2026-06-21T05:16:14.4241502Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4241587Z               "line": 10004
2026-06-21T05:16:14.4241668Z             },
2026-06-21T05:16:14.4241744Z             {
2026-06-21T05:16:14.4241855Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4241955Z               "line": 10715
2026-06-21T05:16:14.4242050Z             }
2026-06-21T05:16:14.4242141Z           ]
2026-06-21T05:16:14.4242221Z         }
2026-06-21T05:16:14.4242311Z       }
2026-06-21T05:16:14.4242393Z     },
2026-06-21T05:16:14.4242475Z     {
2026-06-21T05:16:14.4242564Z       "id": "REQ-SUBNET-3",
2026-06-21T05:16:14.4242828Z       "title": "Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)",
2026-06-21T05:16:14.4242936Z       "requiredStages": [
2026-06-21T05:16:14.4243021Z         "impl",
2026-06-21T05:16:14.4243102Z         "unit"
2026-06-21T05:16:14.4243177Z       ],
2026-06-21T05:16:14.4243262Z       "stages": {
2026-06-21T05:16:14.4243347Z         "doc": {
2026-06-21T05:16:14.4243448Z           "complete": false,
2026-06-21T05:16:14.4243539Z           "evidence": []
2026-06-21T05:16:14.4243610Z         },
2026-06-21T05:16:14.4243706Z         "impl": {
2026-06-21T05:16:14.4243797Z           "complete": true,
2026-06-21T05:16:14.4243887Z           "evidence": [
2026-06-21T05:16:14.4243967Z             {
2026-06-21T05:16:14.4244102Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.4244187Z               "line": 152
2026-06-21T05:16:14.4244268Z             },
2026-06-21T05:16:14.4244345Z             {
2026-06-21T05:16:14.4244474Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.4244563Z               "line": 299
2026-06-21T05:16:14.4244650Z             },
2026-06-21T05:16:14.4244731Z             {
2026-06-21T05:16:14.4244864Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.4244950Z               "line": 443
2026-06-21T05:16:14.4245037Z             },
2026-06-21T05:16:14.4248089Z             {
2026-06-21T05:16:14.4248266Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.4248356Z               "line": 532
2026-06-21T05:16:14.4248445Z             },
2026-06-21T05:16:14.4248527Z             {
2026-06-21T05:16:14.4248649Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.4248748Z               "line": 125
2026-06-21T05:16:14.4248830Z             },
2026-06-21T05:16:14.4248916Z             {
2026-06-21T05:16:14.4249134Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.4249217Z               "line": 253
2026-06-21T05:16:14.4249316Z             },
2026-06-21T05:16:14.4249391Z             {
2026-06-21T05:16:14.4249517Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.4249602Z               "line": 264
2026-06-21T05:16:14.4249683Z             },
2026-06-21T05:16:14.4249779Z             {
2026-06-21T05:16:14.4249884Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.4250113Z               "line": 285
2026-06-21T05:16:14.4250194Z             },
2026-06-21T05:16:14.4250279Z             {
2026-06-21T05:16:14.4250389Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.4250475Z               "line": 621
2026-06-21T05:16:14.4250561Z             },
2026-06-21T05:16:14.4250646Z             {
2026-06-21T05:16:14.4250767Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.4250856Z               "line": 680
2026-06-21T05:16:14.4250937Z             },
2026-06-21T05:16:14.4251019Z             {
2026-06-21T05:16:14.4251148Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-21T05:16:14.4251341Z               "line": 61
2026-06-21T05:16:14.4251422Z             },
2026-06-21T05:16:14.4251500Z             {
2026-06-21T05:16:14.4251617Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-21T05:16:14.4251714Z               "line": 90
2026-06-21T05:16:14.4251800Z             },
2026-06-21T05:16:14.4251885Z             {
2026-06-21T05:16:14.4252009Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-21T05:16:14.4252096Z               "line": 125
2026-06-21T05:16:14.4252186Z             },
2026-06-21T05:16:14.4252256Z             {
2026-06-21T05:16:14.4252382Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-21T05:16:14.4252467Z               "line": 9
2026-06-21T05:16:14.4252557Z             },
2026-06-21T05:16:14.4252638Z             {
2026-06-21T05:16:14.4252744Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4252839Z               "line": 4093
2026-06-21T05:16:14.4252929Z             },
2026-06-21T05:16:14.4253011Z             {
2026-06-21T05:16:14.4253124Z               "path": "crates/spt/src/wansend.rs",
2026-06-21T05:16:14.4253220Z               "line": 445
2026-06-21T05:16:14.4253302Z             }
2026-06-21T05:16:14.4253383Z           ]
2026-06-21T05:16:14.4253472Z         },
2026-06-21T05:16:14.4253562Z         "int": {
2026-06-21T05:16:14.4253662Z           "complete": false,
2026-06-21T05:16:14.4253747Z           "evidence": []
2026-06-21T05:16:14.4253837Z         },
2026-06-21T05:16:14.4253922Z         "unit": {
2026-06-21T05:16:14.4254004Z           "complete": true,
2026-06-21T05:16:14.4254104Z           "evidence": [
2026-06-21T05:16:14.4254170Z             {
2026-06-21T05:16:14.4254294Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.4254390Z               "line": 1356
2026-06-21T05:16:14.4254470Z             },
2026-06-21T05:16:14.4254561Z             {
2026-06-21T05:16:14.4254685Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.4254785Z               "line": 1713
2026-06-21T05:16:14.4254866Z             },
2026-06-21T05:16:14.4254953Z             {
2026-06-21T05:16:14.4255081Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-21T05:16:14.4255167Z               "line": 892
2026-06-21T05:16:14.4255254Z             },
2026-06-21T05:16:14.4255338Z             {
2026-06-21T05:16:14.4255448Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.4255540Z               "line": 991
2026-06-21T05:16:14.4255625Z             },
2026-06-21T05:16:14.4255715Z             {
2026-06-21T05:16:14.4255835Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.4255931Z               "line": 1041
2026-06-21T05:16:14.4256015Z             },
2026-06-21T05:16:14.4256106Z             {
2026-06-21T05:16:14.4256222Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.4256320Z               "line": 1100
2026-06-21T05:16:14.4256415Z             },
2026-06-21T05:16:14.4256496Z             {
2026-06-21T05:16:14.4256614Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-21T05:16:14.4256694Z               "line": 234
2026-06-21T05:16:14.4256784Z             },
2026-06-21T05:16:14.4256871Z             {
2026-06-21T05:16:14.4257094Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-21T05:16:14.4257191Z               "line": 49
2026-06-21T05:16:14.4257272Z             },
2026-06-21T05:16:14.4257361Z             {
2026-06-21T05:16:14.4257467Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4257557Z               "line": 10357
2026-06-21T05:16:14.4257638Z             },
2026-06-21T05:16:14.4257724Z             {
2026-06-21T05:16:14.4257830Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4257920Z               "line": 10463
2026-06-21T05:16:14.4258005Z             },
2026-06-21T05:16:14.4258087Z             {
2026-06-21T05:16:14.4258192Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4258353Z               "line": 10681
2026-06-21T05:16:14.4258441Z             }
2026-06-21T05:16:14.4258530Z           ]
2026-06-21T05:16:14.4258615Z         }
2026-06-21T05:16:14.4258692Z       }
2026-06-21T05:16:14.4258784Z     },
2026-06-21T05:16:14.4258869Z     {
2026-06-21T05:16:14.4259044Z       "id": "REQ-SUBNET-4",
2026-06-21T05:16:14.4259337Z       "title": "Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)",
2026-06-21T05:16:14.4259433Z       "requiredStages": [
2026-06-21T05:16:14.4259515Z         "impl",
2026-06-21T05:16:14.4259599Z         "unit"
2026-06-21T05:16:14.4259680Z       ],
2026-06-21T05:16:14.4259777Z       "stages": {
2026-06-21T05:16:14.4259858Z         "doc": {
2026-06-21T05:16:14.4259951Z           "complete": true,
2026-06-21T05:16:14.4260039Z           "evidence": [
2026-06-21T05:16:14.4260120Z             {
2026-06-21T05:16:14.4260280Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-21T05:16:14.4260368Z               "line": 60
2026-06-21T05:16:14.4260453Z             }
2026-06-21T05:16:14.4260534Z           ]
2026-06-21T05:16:14.4260620Z         },
2026-06-21T05:16:14.4260706Z         "impl": {
2026-06-21T05:16:14.4260792Z           "complete": true,
2026-06-21T05:16:14.4260882Z           "evidence": [
2026-06-21T05:16:14.4260968Z             {
2026-06-21T05:16:14.4261073Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4261158Z               "line": 3399
2026-06-21T05:16:14.4261244Z             },
2026-06-21T05:16:14.4261332Z             {
2026-06-21T05:16:14.4261435Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4261521Z               "line": 4859
2026-06-21T05:16:14.4261603Z             },
2026-06-21T05:16:14.4261689Z             {
2026-06-21T05:16:14.4261792Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4261877Z               "line": 4892
2026-06-21T05:16:14.4261964Z             }
2026-06-21T05:16:14.4262045Z           ]
2026-06-21T05:16:14.4262131Z         },
2026-06-21T05:16:14.4262221Z         "int": {
2026-06-21T05:16:14.4262317Z           "complete": false,
2026-06-21T05:16:14.4262403Z           "evidence": []
2026-06-21T05:16:14.4262487Z         },
2026-06-21T05:16:14.4262579Z         "unit": {
2026-06-21T05:16:14.4262665Z           "complete": true,
2026-06-21T05:16:14.4262760Z           "evidence": [
2026-06-21T05:16:14.4262835Z             {
2026-06-21T05:16:14.4262937Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4263027Z               "line": 10120
2026-06-21T05:16:14.4263117Z             },
2026-06-21T05:16:14.4263203Z             {
2026-06-21T05:16:14.4263304Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4263384Z               "line": 10194
2026-06-21T05:16:14.4263475Z             }
2026-06-21T05:16:14.4263562Z           ]
2026-06-21T05:16:14.4263648Z         }
2026-06-21T05:16:14.4263727Z       }
2026-06-21T05:16:14.4263809Z     },
2026-06-21T05:16:14.4263896Z     {
2026-06-21T05:16:14.4263995Z       "id": "REQ-SUBNET-5",
2026-06-21T05:16:14.4265160Z       "title": "Per-subnet serve-state: spt subnet detach <NAME> [--save] / attach <NAME> [--save] — daemon keeps running, stops/starts advertising + connecting for that subnet (peer pump + responder selective); --save persists the startup default in daemon config; the all-attached banner gains per-subnet states (M8 decision 6, --save renamed from --auto per decision 25 session)",
2026-06-21T05:16:14.4265369Z       "requiredStages": [
2026-06-21T05:16:14.4265456Z         "impl",
2026-06-21T05:16:14.4265537Z         "unit",
2026-06-21T05:16:14.4265623Z         "int"
2026-06-21T05:16:14.4265707Z       ],
2026-06-21T05:16:14.4265794Z       "stages": {
2026-06-21T05:16:14.4265875Z         "doc": {
2026-06-21T05:16:14.4265970Z           "complete": false,
2026-06-21T05:16:14.4266070Z           "evidence": []
2026-06-21T05:16:14.4266153Z         },
2026-06-21T05:16:14.4266237Z         "impl": {
2026-06-21T05:16:14.4266424Z           "complete": true,
2026-06-21T05:16:14.4266510Z           "evidence": [
2026-06-21T05:16:14.4266594Z             {
2026-06-21T05:16:14.4266720Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-21T05:16:14.4266816Z               "line": 128
2026-06-21T05:16:14.4266899Z             },
2026-06-21T05:16:14.4266994Z             {
2026-06-21T05:16:14.4267114Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-21T05:16:14.4267207Z               "line": 413
2026-06-21T05:16:14.4267297Z             },
2026-06-21T05:16:14.4267378Z             {
2026-06-21T05:16:14.4267503Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T05:16:14.4267588Z               "line": 74
2026-06-21T05:16:14.4267669Z             },
2026-06-21T05:16:14.4267747Z             {
2026-06-21T05:16:14.4267869Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T05:16:14.4267945Z               "line": 332
2026-06-21T05:16:14.4268032Z             },
2026-06-21T05:16:14.4268117Z             {
2026-06-21T05:16:14.4268226Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T05:16:14.4268318Z               "line": 621
2026-06-21T05:16:14.4268400Z             },
2026-06-21T05:16:14.4268489Z             {
2026-06-21T05:16:14.4268613Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-21T05:16:14.4268705Z               "line": 31
2026-06-21T05:16:14.4268789Z             },
2026-06-21T05:16:14.4268870Z             {
2026-06-21T05:16:14.4269090Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-21T05:16:14.4269180Z               "line": 50
2026-06-21T05:16:14.4269262Z             },
2026-06-21T05:16:14.4269344Z             {
2026-06-21T05:16:14.4269461Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-21T05:16:14.4269551Z               "line": 69
2026-06-21T05:16:14.4269632Z             },
2026-06-21T05:16:14.4269718Z             {
2026-06-21T05:16:14.4269836Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-21T05:16:14.4269935Z               "line": 113
2026-06-21T05:16:14.4270027Z             },
2026-06-21T05:16:14.4270107Z             {
2026-06-21T05:16:14.4270236Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-21T05:16:14.4270313Z               "line": 25
2026-06-21T05:16:14.4270398Z             },
2026-06-21T05:16:14.4270484Z             {
2026-06-21T05:16:14.4270614Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-21T05:16:14.4270699Z               "line": 34
2026-06-21T05:16:14.4270770Z             },
2026-06-21T05:16:14.4270845Z             {
2026-06-21T05:16:14.4270966Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-21T05:16:14.4271056Z               "line": 17
2026-06-21T05:16:14.4271142Z             },
2026-06-21T05:16:14.4271233Z             {
2026-06-21T05:16:14.4271338Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4271423Z               "line": 4817
2026-06-21T05:16:14.4271509Z             },
2026-06-21T05:16:14.4271596Z             {
2026-06-21T05:16:14.4271704Z               "path": "crates/spt/src/wansend.rs",
2026-06-21T05:16:14.4271786Z               "line": 419
2026-06-21T05:16:14.4271873Z             }
2026-06-21T05:16:14.4271958Z           ]
2026-06-21T05:16:14.4272038Z         },
2026-06-21T05:16:14.4272221Z         "int": {
2026-06-21T05:16:14.4272301Z           "complete": true,
2026-06-21T05:16:14.4272385Z           "evidence": [
2026-06-21T05:16:14.4272466Z             {
2026-06-21T05:16:14.4272601Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-21T05:16:14.4272696Z               "line": 821
2026-06-21T05:16:14.4272771Z             }
2026-06-21T05:16:14.4272858Z           ]
2026-06-21T05:16:14.4272939Z         },
2026-06-21T05:16:14.4273024Z         "unit": {
2026-06-21T05:16:14.4273110Z           "complete": true,
2026-06-21T05:16:14.4273201Z           "evidence": [
2026-06-21T05:16:14.4273287Z             {
2026-06-21T05:16:14.4273497Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-21T05:16:14.4273587Z               "line": 341
2026-06-21T05:16:14.4273659Z             },
2026-06-21T05:16:14.4273744Z             {
2026-06-21T05:16:14.4273859Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-21T05:16:14.4273944Z               "line": 1115
2026-06-21T05:16:14.4274039Z             },
2026-06-21T05:16:14.4274127Z             {
2026-06-21T05:16:14.4274250Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-21T05:16:14.4274331Z               "line": 151
2026-06-21T05:16:14.4274417Z             },
2026-06-21T05:16:14.4274508Z             {
2026-06-21T05:16:14.4274620Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-21T05:16:14.4274711Z               "line": 61
2026-06-21T05:16:14.4274792Z             },
2026-06-21T05:16:14.4274877Z             {
2026-06-21T05:16:14.4274995Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-21T05:16:14.4275081Z               "line": 111
2026-06-21T05:16:14.4275172Z             },
2026-06-21T05:16:14.4275253Z             {
2026-06-21T05:16:14.4275376Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-21T05:16:14.4275463Z               "line": 138
2026-06-21T05:16:14.4275548Z             },
2026-06-21T05:16:14.4275629Z             {
2026-06-21T05:16:14.4275754Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-21T05:16:14.4275844Z               "line": 148
2026-06-21T05:16:14.4275924Z             },
2026-06-21T05:16:14.4276011Z             {
2026-06-21T05:16:14.4276116Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4276202Z               "line": 10021
2026-06-21T05:16:14.4276287Z             }
2026-06-21T05:16:14.4276369Z           ]
2026-06-21T05:16:14.4276459Z         }
2026-06-21T05:16:14.4276540Z       }
2026-06-21T05:16:14.4276626Z     },
2026-06-21T05:16:14.4276713Z     {
2026-06-21T05:16:14.4276806Z       "id": "REQ-SUBNET-6",
2026-06-21T05:16:14.4277474Z       "title": "Trust lifecycle verbs, elevation-gated: spt subnet leave <NAME> (membership exit) and spt subnet prune <node> (removes a dead identity's trust + registry rows, killing its dead dials; trust mutation = security surface, REQ-PAIR-6 gate machinery) (M8 decisions 6-7)",
2026-06-21T05:16:14.4277578Z       "requiredStages": [
2026-06-21T05:16:14.4277664Z         "impl",
2026-06-21T05:16:14.4277749Z         "unit"
2026-06-21T05:16:14.4277833Z       ],
2026-06-21T05:16:14.4277914Z       "stages": {
2026-06-21T05:16:14.4278001Z         "doc": {
2026-06-21T05:16:14.4278101Z           "complete": false,
2026-06-21T05:16:14.4278181Z           "evidence": []
2026-06-21T05:16:14.4278272Z         },
2026-06-21T05:16:14.4278354Z         "impl": {
2026-06-21T05:16:14.4278453Z           "complete": true,
2026-06-21T05:16:14.4278534Z           "evidence": [
2026-06-21T05:16:14.4278621Z             {
2026-06-21T05:16:14.4278745Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.4278839Z               "line": 254
2026-06-21T05:16:14.4278921Z             },
2026-06-21T05:16:14.4279059Z             {
2026-06-21T05:16:14.4279164Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4279256Z               "line": 4475
2026-06-21T05:16:14.4279345Z             },
2026-06-21T05:16:14.4279430Z             {
2026-06-21T05:16:14.4279721Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4279822Z               "line": 4492
2026-06-21T05:16:14.4279909Z             },
2026-06-21T05:16:14.4279993Z             {
2026-06-21T05:16:14.4280097Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4280178Z               "line": 4545
2026-06-21T05:16:14.4280269Z             },
2026-06-21T05:16:14.4280352Z             {
2026-06-21T05:16:14.4280457Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4280544Z               "line": 4568
2026-06-21T05:16:14.4280635Z             }
2026-06-21T05:16:14.4280719Z           ]
2026-06-21T05:16:14.4280801Z         },
2026-06-21T05:16:14.4280992Z         "int": {
2026-06-21T05:16:14.4281077Z           "complete": false,
2026-06-21T05:16:14.4281164Z           "evidence": []
2026-06-21T05:16:14.4281244Z         },
2026-06-21T05:16:14.4281339Z         "unit": {
2026-06-21T05:16:14.4281430Z           "complete": true,
2026-06-21T05:16:14.4281517Z           "evidence": [
2026-06-21T05:16:14.4281607Z             {
2026-06-21T05:16:14.4281707Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4281793Z               "line": 10035
2026-06-21T05:16:14.4281869Z             },
2026-06-21T05:16:14.4281955Z             {
2026-06-21T05:16:14.4282059Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4282156Z               "line": 10068
2026-06-21T05:16:14.4282236Z             },
2026-06-21T05:16:14.4282322Z             {
2026-06-21T05:16:14.4282433Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4282508Z               "line": 10077
2026-06-21T05:16:14.4282593Z             }
2026-06-21T05:16:14.4282680Z           ]
2026-06-21T05:16:14.4282767Z         }
2026-06-21T05:16:14.4282856Z       }
2026-06-21T05:16:14.4282936Z     },
2026-06-21T05:16:14.4283021Z     {
2026-06-21T05:16:14.4283113Z       "id": "REQ-SUBNET-7",
2026-06-21T05:16:14.4284701Z       "title": "Per-machine re-pair trust overwrite: registry rows carry a hashed stable machine identifier (OS machine id /etc/machine-id|MachineGuid, domain-separated SHA-256 before gossip, spt-minted persisted UUID fallback; additive serde-default field — old rows parse clean); a COMPLETED pairing ceremony presenting the same node label AND machine id as an existing trusted row evicts the superseded identity's trust + registry rows on the seed-holder and replicates the eviction; a gossiped claim alone never evicts trust (M8 decisions 13, 22)",
2026-06-21T05:16:14.4284814Z       "requiredStages": [
2026-06-21T05:16:14.4284896Z         "impl",
2026-06-21T05:16:14.4284972Z         "unit"
2026-06-21T05:16:14.4285049Z       ],
2026-06-21T05:16:14.4285153Z       "stages": {
2026-06-21T05:16:14.4285219Z         "doc": {
2026-06-21T05:16:14.4285309Z           "complete": false,
2026-06-21T05:16:14.4285404Z           "evidence": []
2026-06-21T05:16:14.4285484Z         },
2026-06-21T05:16:14.4285569Z         "impl": {
2026-06-21T05:16:14.4285655Z           "complete": true,
2026-06-21T05:16:14.4285752Z           "evidence": [
2026-06-21T05:16:14.4285836Z             {
2026-06-21T05:16:14.4285961Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-21T05:16:14.4286056Z               "line": 17
2026-06-21T05:16:14.4286142Z             },
2026-06-21T05:16:14.4286232Z             {
2026-06-21T05:16:14.4286352Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T05:16:14.4286442Z               "line": 103
2026-06-21T05:16:14.4286537Z             },
2026-06-21T05:16:14.4286619Z             {
2026-06-21T05:16:14.4286743Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-21T05:16:14.4286827Z               "line": 312
2026-06-21T05:16:14.4286920Z             },
2026-06-21T05:16:14.4287005Z             {
2026-06-21T05:16:14.4287138Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-21T05:16:14.4287220Z               "line": 131
2026-06-21T05:16:14.4287306Z             },
2026-06-21T05:16:14.4287400Z             {
2026-06-21T05:16:14.4287626Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.4287710Z               "line": 160
2026-06-21T05:16:14.4287796Z             },
2026-06-21T05:16:14.4287883Z             {
2026-06-21T05:16:14.4288015Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.4288096Z               "line": 447
2026-06-21T05:16:14.4288181Z             },
2026-06-21T05:16:14.4288262Z             {
2026-06-21T05:16:14.4288393Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.4288484Z               "line": 670
2026-06-21T05:16:14.4288566Z             },
2026-06-21T05:16:14.4288652Z             {
2026-06-21T05:16:14.4288837Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.4288928Z               "line": 710
2026-06-21T05:16:14.4289099Z             },
2026-06-21T05:16:14.4289186Z             {
2026-06-21T05:16:14.4289305Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.4289399Z               "line": 766
2026-06-21T05:16:14.4289481Z             },
2026-06-21T05:16:14.4289567Z             {
2026-06-21T05:16:14.4289690Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T05:16:14.4289787Z               "line": 136
2026-06-21T05:16:14.4289877Z             },
2026-06-21T05:16:14.4289952Z             {
2026-06-21T05:16:14.4290077Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.4290159Z               "line": 139
2026-06-21T05:16:14.4290243Z             }
2026-06-21T05:16:14.4290329Z           ]
2026-06-21T05:16:14.4290402Z         },
2026-06-21T05:16:14.4290488Z         "int": {
2026-06-21T05:16:14.4290586Z           "complete": false,
2026-06-21T05:16:14.4290676Z           "evidence": []
2026-06-21T05:16:14.4290772Z         },
2026-06-21T05:16:14.4290848Z         "unit": {
2026-06-21T05:16:14.4290946Z           "complete": true,
2026-06-21T05:16:14.4291031Z           "evidence": [
2026-06-21T05:16:14.4291113Z             {
2026-06-21T05:16:14.4291227Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-21T05:16:14.4291313Z               "line": 136
2026-06-21T05:16:14.4291394Z             },
2026-06-21T05:16:14.4291481Z             {
2026-06-21T05:16:14.4291604Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-21T05:16:14.4291685Z               "line": 156
2026-06-21T05:16:14.4291776Z             },
2026-06-21T05:16:14.4291853Z             {
2026-06-21T05:16:14.4291985Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.4292082Z               "line": 987
2026-06-21T05:16:14.4292162Z             },
2026-06-21T05:16:14.4292257Z             {
2026-06-21T05:16:14.4292383Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-21T05:16:14.4292472Z               "line": 1009
2026-06-21T05:16:14.4292562Z             },
2026-06-21T05:16:14.4292644Z             {
2026-06-21T05:16:14.4292772Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-21T05:16:14.4292858Z               "line": 1419
2026-06-21T05:16:14.4292944Z             },
2026-06-21T05:16:14.4293017Z             {
2026-06-21T05:16:14.4293139Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-21T05:16:14.4293221Z               "line": 1036
2026-06-21T05:16:14.4293303Z             }
2026-06-21T05:16:14.4293393Z           ]
2026-06-21T05:16:14.4293472Z         }
2026-06-21T05:16:14.4293562Z       }
2026-06-21T05:16:14.4293644Z     },
2026-06-21T05:16:14.4293731Z     {
2026-06-21T05:16:14.4293834Z       "id": "REQ-SUBNET-8",
2026-06-21T05:16:14.4294889Z       "title": "Status render honesty: zero-subnet text is daemon-aware ('No subnets registered — this node is standalone.' + daemon-running-dependent blurb, never implying messaging works while the daemon is down); hint footer prints on bare spt subnet only (status drops it); a stalled pump is surfaced in subnet status, never rendered implied-healthy (M8 decisions 11-12, 23)",
2026-06-21T05:16:14.4294994Z       "requiredStages": [
2026-06-21T05:16:14.4295179Z         "impl",
2026-06-21T05:16:14.4295262Z         "unit"
2026-06-21T05:16:14.4295346Z       ],
2026-06-21T05:16:14.4295427Z       "stages": {
2026-06-21T05:16:14.4295518Z         "doc": {
2026-06-21T05:16:14.4295605Z           "complete": false,
2026-06-21T05:16:14.4295703Z           "evidence": []
2026-06-21T05:16:14.4295774Z         },
2026-06-21T05:16:14.4295865Z         "impl": {
2026-06-21T05:16:14.4295964Z           "complete": true,
2026-06-21T05:16:14.4296054Z           "evidence": [
2026-06-21T05:16:14.4296148Z             {
2026-06-21T05:16:14.4296254Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4296444Z               "line": 3835
2026-06-21T05:16:14.4296535Z             },
2026-06-21T05:16:14.4296617Z             {
2026-06-21T05:16:14.4296716Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4296806Z               "line": 3864
2026-06-21T05:16:14.4296898Z             },
2026-06-21T05:16:14.4296983Z             {
2026-06-21T05:16:14.4297087Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4297170Z               "line": 3881
2026-06-21T05:16:14.4297288Z             },
2026-06-21T05:16:14.4297402Z             {
2026-06-21T05:16:14.4297494Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4297589Z               "line": 3904
2026-06-21T05:16:14.4297670Z             },
2026-06-21T05:16:14.4297937Z             {
2026-06-21T05:16:14.4298133Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4298381Z               "line": 4318
2026-06-21T05:16:14.4298580Z             }
2026-06-21T05:16:14.4298746Z           ]
2026-06-21T05:16:14.4298911Z         },
2026-06-21T05:16:14.4299173Z         "int": {
2026-06-21T05:16:14.4299373Z           "complete": false,
2026-06-21T05:16:14.4299578Z           "evidence": []
2026-06-21T05:16:14.4299760Z         },
2026-06-21T05:16:14.4299935Z         "unit": {
2026-06-21T05:16:14.4300109Z           "complete": true,
2026-06-21T05:16:14.4300313Z           "evidence": [
2026-06-21T05:16:14.4300498Z             {
2026-06-21T05:16:14.4300681Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4300918Z               "line": 10225
2026-06-21T05:16:14.4301105Z             },
2026-06-21T05:16:14.4301269Z             {
2026-06-21T05:16:14.4301454Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4301668Z               "line": 10241
2026-06-21T05:16:14.4301854Z             }
2026-06-21T05:16:14.4302013Z           ]
2026-06-21T05:16:14.4302178Z         }
2026-06-21T05:16:14.4302332Z       }
2026-06-21T05:16:14.4302488Z     },
2026-06-21T05:16:14.4302656Z     {
2026-06-21T05:16:14.4302832Z       "id": "REQ-TERM-1",
2026-06-21T05:16:14.4303117Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-21T05:16:14.4303428Z       "requiredStages": [
2026-06-21T05:16:14.4303680Z         "impl",
2026-06-21T05:16:14.4303854Z         "unit"
2026-06-21T05:16:14.4304018Z       ],
2026-06-21T05:16:14.4304189Z       "stages": {
2026-06-21T05:16:14.4304361Z         "doc": {
2026-06-21T05:16:14.4304538Z           "complete": false,
2026-06-21T05:16:14.4304733Z           "evidence": []
2026-06-21T05:16:14.4304919Z         },
2026-06-21T05:16:14.4305081Z         "impl": {
2026-06-21T05:16:14.4305263Z           "complete": true,
2026-06-21T05:16:14.4305463Z           "evidence": [
2026-06-21T05:16:14.4305644Z             {
2026-06-21T05:16:14.4305841Z               "path": "crates/spt-term/src/pty.rs",
2026-06-21T05:16:14.4306083Z               "line": 59
2026-06-21T05:16:14.4306263Z             },
2026-06-21T05:16:14.4306434Z             {
2026-06-21T05:16:14.4306618Z               "path": "crates/spt-term/src/pty.rs",
2026-06-21T05:16:14.4306853Z               "line": 234
2026-06-21T05:16:14.4307038Z             },
2026-06-21T05:16:14.4307200Z             {
2026-06-21T05:16:14.4307401Z               "path": "crates/spt-term/src/surface.rs",
2026-06-21T05:16:14.4307633Z               "line": 100
2026-06-21T05:16:14.4307915Z             }
2026-06-21T05:16:14.4308083Z           ]
2026-06-21T05:16:14.4308259Z         },
2026-06-21T05:16:14.4308412Z         "int": {
2026-06-21T05:16:14.4308587Z           "complete": false,
2026-06-21T05:16:14.4308788Z           "evidence": []
2026-06-21T05:16:14.4309027Z         },
2026-06-21T05:16:14.4309192Z         "unit": {
2026-06-21T05:16:14.4309359Z           "complete": true,
2026-06-21T05:16:14.4309556Z           "evidence": [
2026-06-21T05:16:14.4309743Z             {
2026-06-21T05:16:14.4309948Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-21T05:16:14.4310190Z               "line": 24
2026-06-21T05:16:14.4310363Z             },
2026-06-21T05:16:14.4310640Z             {
2026-06-21T05:16:14.4310834Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-21T05:16:14.4311072Z               "line": 56
2026-06-21T05:16:14.4311255Z             }
2026-06-21T05:16:14.4311431Z           ]
2026-06-21T05:16:14.4311599Z         }
2026-06-21T05:16:14.4311759Z       }
2026-06-21T05:16:14.4311921Z     },
2026-06-21T05:16:14.4312128Z     {
2026-06-21T05:16:14.4312311Z       "id": "REQ-TERM-2",
2026-06-21T05:16:14.4312605Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-21T05:16:14.4312930Z       "requiredStages": [
2026-06-21T05:16:14.4313135Z         "impl",
2026-06-21T05:16:14.4313330Z         "unit"
2026-06-21T05:16:14.4313512Z       ],
2026-06-21T05:16:14.4317408Z       "stages": {
2026-06-21T05:16:14.4317612Z         "doc": {
2026-06-21T05:16:14.4317808Z           "complete": false,
2026-06-21T05:16:14.4318028Z           "evidence": []
2026-06-21T05:16:14.4318217Z         },
2026-06-21T05:16:14.4318395Z         "impl": {
2026-06-21T05:16:14.4318585Z           "complete": true,
2026-06-21T05:16:14.4318795Z           "evidence": [
2026-06-21T05:16:14.4319095Z             {
2026-06-21T05:16:14.4319291Z               "path": "crates/spt-term/src/surface.rs",
2026-06-21T05:16:14.4319544Z               "line": 117
2026-06-21T05:16:14.4319733Z             },
2026-06-21T05:16:14.4319900Z             {
2026-06-21T05:16:14.4320097Z               "path": "crates/spt-term/src/surface.rs",
2026-06-21T05:16:14.4320337Z               "line": 127
2026-06-21T05:16:14.4320528Z             }
2026-06-21T05:16:14.4320698Z           ]
2026-06-21T05:16:14.4320852Z         },
2026-06-21T05:16:14.4321013Z         "int": {
2026-06-21T05:16:14.4321195Z           "complete": false,
2026-06-21T05:16:14.4321394Z           "evidence": []
2026-06-21T05:16:14.4321572Z         },
2026-06-21T05:16:14.4321728Z         "unit": {
2026-06-21T05:16:14.4321896Z           "complete": true,
2026-06-21T05:16:14.4322092Z           "evidence": [
2026-06-21T05:16:14.4322286Z             {
2026-06-21T05:16:14.4322471Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-21T05:16:14.4322717Z               "line": 46
2026-06-21T05:16:14.4322899Z             },
2026-06-21T05:16:14.4323060Z             {
2026-06-21T05:16:14.4323261Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-21T05:16:14.4323499Z               "line": 77
2026-06-21T05:16:14.4323671Z             }
2026-06-21T05:16:14.4323847Z           ]
2026-06-21T05:16:14.4324009Z         }
2026-06-21T05:16:14.4324162Z       }
2026-06-21T05:16:14.4324310Z     },
2026-06-21T05:16:14.4324472Z     {
2026-06-21T05:16:14.4324630Z       "id": "REQ-TERM-3",
2026-06-21T05:16:14.4324877Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-21T05:16:14.4325153Z       "requiredStages": [
2026-06-21T05:16:14.4325348Z         "impl",
2026-06-21T05:16:14.4325529Z         "unit"
2026-06-21T05:16:14.4325692Z       ],
2026-06-21T05:16:14.4325863Z       "stages": {
2026-06-21T05:16:14.4326040Z         "doc": {
2026-06-21T05:16:14.4326221Z           "complete": false,
2026-06-21T05:16:14.4326426Z           "evidence": []
2026-06-21T05:16:14.4326612Z         },
2026-06-21T05:16:14.4326774Z         "impl": {
2026-06-21T05:16:14.4326947Z           "complete": true,
2026-06-21T05:16:14.4327150Z           "evidence": [
2026-06-21T05:16:14.4327473Z             {
2026-06-21T05:16:14.4327673Z               "path": "crates/spt-term/src/stream.rs",
2026-06-21T05:16:14.4327910Z               "line": 71
2026-06-21T05:16:14.4328101Z             }
2026-06-21T05:16:14.4328254Z           ]
2026-06-21T05:16:14.4328415Z         },
2026-06-21T05:16:14.4328573Z         "int": {
2026-06-21T05:16:14.4328759Z           "complete": false,
2026-06-21T05:16:14.4329040Z           "evidence": []
2026-06-21T05:16:14.4329217Z         },
2026-06-21T05:16:14.4329388Z         "unit": {
2026-06-21T05:16:14.4329588Z           "complete": true,
2026-06-21T05:16:14.4329785Z           "evidence": [
2026-06-21T05:16:14.4330086Z             {
2026-06-21T05:16:14.4330279Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-21T05:16:14.4330521Z               "line": 37
2026-06-21T05:16:14.4330700Z             },
2026-06-21T05:16:14.4330868Z             {
2026-06-21T05:16:14.4331063Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-21T05:16:14.4331311Z               "line": 67
2026-06-21T05:16:14.4331493Z             }
2026-06-21T05:16:14.4331640Z           ]
2026-06-21T05:16:14.4331803Z         }
2026-06-21T05:16:14.4331950Z       }
2026-06-21T05:16:14.4332108Z     },
2026-06-21T05:16:14.4332260Z     {
2026-06-21T05:16:14.4332423Z       "id": "REQ-TERM-4",
2026-06-21T05:16:14.4332993Z       "title": "Live activity buffer (session digest): projection of normalized session logs, snapshot-pull (spt endpoint digest) + structured-delta-stream contract + api digest-entry push",
2026-06-21T05:16:14.4333592Z       "requiredStages": [
2026-06-21T05:16:14.4333783Z         "impl",
2026-06-21T05:16:14.4333955Z         "unit",
2026-06-21T05:16:14.4334126Z         "int"
2026-06-21T05:16:14.4334298Z       ],
2026-06-21T05:16:14.4334455Z       "stages": {
2026-06-21T05:16:14.4334627Z         "doc": {
2026-06-21T05:16:14.4334803Z           "complete": false,
2026-06-21T05:16:14.4335013Z           "evidence": []
2026-06-21T05:16:14.4335214Z         },
2026-06-21T05:16:14.4335380Z         "impl": {
2026-06-21T05:16:14.4335553Z           "complete": true,
2026-06-21T05:16:14.4335732Z           "evidence": [
2026-06-21T05:16:14.4335913Z             {
2026-06-21T05:16:14.4336113Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-21T05:16:14.4336366Z               "line": 37
2026-06-21T05:16:14.4336543Z             },
2026-06-21T05:16:14.4336705Z             {
2026-06-21T05:16:14.4336905Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-21T05:16:14.4337154Z               "line": 25
2026-06-21T05:16:14.4337334Z             },
2026-06-21T05:16:14.4337507Z             {
2026-06-21T05:16:14.4337701Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-21T05:16:14.4337948Z               "line": 114
2026-06-21T05:16:14.4338124Z             },
2026-06-21T05:16:14.4338294Z             {
2026-06-21T05:16:14.4338485Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-21T05:16:14.4338723Z               "line": 267
2026-06-21T05:16:14.4338909Z             },
2026-06-21T05:16:14.4339143Z             {
2026-06-21T05:16:14.4339347Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-21T05:16:14.4339586Z               "line": 289
2026-06-21T05:16:14.4339773Z             },
2026-06-21T05:16:14.4339939Z             {
2026-06-21T05:16:14.4340125Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-21T05:16:14.4340364Z               "line": 307
2026-06-21T05:16:14.4340544Z             },
2026-06-21T05:16:14.4340708Z             {
2026-06-21T05:16:14.4340896Z               "path": "crates/spt-store/src/history.rs",
2026-06-21T05:16:14.4341137Z               "line": 33
2026-06-21T05:16:14.4341318Z             },
2026-06-21T05:16:14.4341475Z             {
2026-06-21T05:16:14.4341677Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T05:16:14.4341924Z               "line": 52
2026-06-21T05:16:14.4342101Z             },
2026-06-21T05:16:14.4342258Z             {
2026-06-21T05:16:14.4342553Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T05:16:14.4342806Z               "line": 180
2026-06-21T05:16:14.4342978Z             },
2026-06-21T05:16:14.4343130Z             {
2026-06-21T05:16:14.4343326Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T05:16:14.4343568Z               "line": 190
2026-06-21T05:16:14.4343756Z             },
2026-06-21T05:16:14.4343914Z             {
2026-06-21T05:16:14.4344104Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T05:16:14.4344339Z               "line": 250
2026-06-21T05:16:14.4344520Z             },
2026-06-21T05:16:14.4344682Z             {
2026-06-21T05:16:14.4344972Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.4345202Z               "line": 284
2026-06-21T05:16:14.4345382Z             },
2026-06-21T05:16:14.4345536Z             {
2026-06-21T05:16:14.4345730Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.4345983Z               "line": 295
2026-06-21T05:16:14.4346165Z             },
2026-06-21T05:16:14.4346330Z             {
2026-06-21T05:16:14.4346512Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4346745Z               "line": 1193
2026-06-21T05:16:14.4346931Z             }
2026-06-21T05:16:14.4347094Z           ]
2026-06-21T05:16:14.4347260Z         },
2026-06-21T05:16:14.4347418Z         "int": {
2026-06-21T05:16:14.4347598Z           "complete": true,
2026-06-21T05:16:14.4347790Z           "evidence": [
2026-06-21T05:16:14.4347965Z             {
2026-06-21T05:16:14.4348170Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-21T05:16:14.4348420Z               "line": 18
2026-06-21T05:16:14.4348594Z             }
2026-06-21T05:16:14.4348751Z           ]
2026-06-21T05:16:14.4348906Z         },
2026-06-21T05:16:14.4349164Z         "unit": {
2026-06-21T05:16:14.4349340Z           "complete": true,
2026-06-21T05:16:14.4349535Z           "evidence": [
2026-06-21T05:16:14.4349717Z             {
2026-06-21T05:16:14.4349917Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-21T05:16:14.4350164Z               "line": 364
2026-06-21T05:16:14.4350343Z             },
2026-06-21T05:16:14.4350508Z             {
2026-06-21T05:16:14.4350713Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-21T05:16:14.4350958Z               "line": 416
2026-06-21T05:16:14.4351147Z             },
2026-06-21T05:16:14.4351311Z             {
2026-06-21T05:16:14.4351513Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-21T05:16:14.4351750Z               "line": 426
2026-06-21T05:16:14.4351922Z             },
2026-06-21T05:16:14.4352083Z             {
2026-06-21T05:16:14.4352284Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-21T05:16:14.4352542Z               "line": 436
2026-06-21T05:16:14.4352722Z             },
2026-06-21T05:16:14.4352886Z             {
2026-06-21T05:16:14.4353085Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-21T05:16:14.4353342Z               "line": 456
2026-06-21T05:16:14.4353525Z             },
2026-06-21T05:16:14.4353686Z             {
2026-06-21T05:16:14.4353882Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-21T05:16:14.4354128Z               "line": 478
2026-06-21T05:16:14.4354312Z             },
2026-06-21T05:16:14.4354469Z             {
2026-06-21T05:16:14.4354669Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-21T05:16:14.4354908Z               "line": 491
2026-06-21T05:16:14.4355095Z             },
2026-06-21T05:16:14.4355256Z             {
2026-06-21T05:16:14.4355456Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-21T05:16:14.4355714Z               "line": 502
2026-06-21T05:16:14.4355900Z             },
2026-06-21T05:16:14.4356068Z             {
2026-06-21T05:16:14.4356271Z               "path": "crates/spt-store/src/history.rs",
2026-06-21T05:16:14.4356514Z               "line": 108
2026-06-21T05:16:14.4356702Z             },
2026-06-21T05:16:14.4356995Z             {
2026-06-21T05:16:14.4357191Z               "path": "crates/spt-term/src/digest.rs",
2026-06-21T05:16:14.4357444Z               "line": 119
2026-06-21T05:16:14.4357630Z             },
2026-06-21T05:16:14.4357797Z             {
2026-06-21T05:16:14.4357988Z               "path": "crates/spt-term/src/digest.rs",
2026-06-21T05:16:14.4358230Z               "line": 127
2026-06-21T05:16:14.4358416Z             },
2026-06-21T05:16:14.4358589Z             {
2026-06-21T05:16:14.4358793Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T05:16:14.4359101Z               "line": 474
2026-06-21T05:16:14.4359307Z             },
2026-06-21T05:16:14.4359682Z             {
2026-06-21T05:16:14.4359882Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T05:16:14.4360129Z               "line": 501
2026-06-21T05:16:14.4360315Z             },
2026-06-21T05:16:14.4360477Z             {
2026-06-21T05:16:14.4360673Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T05:16:14.4360921Z               "line": 520
2026-06-21T05:16:14.4361107Z             },
2026-06-21T05:16:14.4361269Z             {
2026-06-21T05:16:14.4361466Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T05:16:14.4361707Z               "line": 535
2026-06-21T05:16:14.4361890Z             },
2026-06-21T05:16:14.4362054Z             {
2026-06-21T05:16:14.4362249Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T05:16:14.4362497Z               "line": 561
2026-06-21T05:16:14.4362686Z             },
2026-06-21T05:16:14.4362849Z             {
2026-06-21T05:16:14.4363044Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T05:16:14.4363291Z               "line": 581
2026-06-21T05:16:14.4363465Z             },
2026-06-21T05:16:14.4363630Z             {
2026-06-21T05:16:14.4363830Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T05:16:14.4364075Z               "line": 591
2026-06-21T05:16:14.4364260Z             },
2026-06-21T05:16:14.4364433Z             {
2026-06-21T05:16:14.4364630Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T05:16:14.4364867Z               "line": 683
2026-06-21T05:16:14.4365053Z             },
2026-06-21T05:16:14.4365215Z             {
2026-06-21T05:16:14.4365402Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.4365645Z               "line": 885
2026-06-21T05:16:14.4365830Z             },
2026-06-21T05:16:14.4365998Z             {
2026-06-21T05:16:14.4366178Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4366412Z               "line": 9792
2026-06-21T05:16:14.4366604Z             }
2026-06-21T05:16:14.4366774Z           ]
2026-06-21T05:16:14.4366943Z         }
2026-06-21T05:16:14.4367098Z       }
2026-06-21T05:16:14.4367272Z     },
2026-06-21T05:16:14.4367427Z     {
2026-06-21T05:16:14.4367598Z       "id": "REQ-TERM-5",
2026-06-21T05:16:14.4369249Z       "title": "Adapter-declared digest extractor seam: a `[digest]` manifest section declaring an imperative extractor (native harness log -> the {role,text,tool,ts} contract; defaults to the [history] source files with an own-source escape hatch), `api digest-entry` push fallback, register-time validation of the section, adapter-declared presentation defaults (window depth, arg-truncation, sprint-collapse) that any consumer may override, and a `spt adapter digest-proof` author tool plus runtime skip-diagnostics (no silent drop). Reverses M9's no-manifest-seam stance; no declarative DSL.",
2026-06-21T05:16:14.4370871Z       "requiredStages": [
2026-06-21T05:16:14.4371067Z         "doc",
2026-06-21T05:16:14.4371233Z         "impl",
2026-06-21T05:16:14.4371410Z         "unit",
2026-06-21T05:16:14.4371581Z         "int"
2026-06-21T05:16:14.4371739Z       ],
2026-06-21T05:16:14.4371906Z       "stages": {
2026-06-21T05:16:14.4372073Z         "doc": {
2026-06-21T05:16:14.4372258Z           "complete": true,
2026-06-21T05:16:14.4372464Z           "evidence": [
2026-06-21T05:16:14.4372753Z             {
2026-06-21T05:16:14.4372936Z               "path": "docs/MANIFEST.md",
2026-06-21T05:16:14.4373170Z               "line": 234
2026-06-21T05:16:14.4373376Z             }
2026-06-21T05:16:14.4373542Z           ]
2026-06-21T05:16:14.4373701Z         },
2026-06-21T05:16:14.4373856Z         "impl": {
2026-06-21T05:16:14.4374039Z           "complete": true,
2026-06-21T05:16:14.4374233Z           "evidence": [
2026-06-21T05:16:14.4374414Z             {
2026-06-21T05:16:14.4374630Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-21T05:16:14.4374873Z               "line": 75
2026-06-21T05:16:14.4375086Z             },
2026-06-21T05:16:14.4375380Z             {
2026-06-21T05:16:14.4375575Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-21T05:16:14.4375818Z               "line": 131
2026-06-21T05:16:14.4376014Z             },
2026-06-21T05:16:14.4376186Z             {
2026-06-21T05:16:14.4376380Z               "path": "crates/spt-live/src/digest.rs",
2026-06-21T05:16:14.4376624Z               "line": 22
2026-06-21T05:16:14.4376805Z             },
2026-06-21T05:16:14.4376972Z             {
2026-06-21T05:16:14.4377159Z               "path": "crates/spt-live/src/digest.rs",
2026-06-21T05:16:14.4377382Z               "line": 87
2026-06-21T05:16:14.4377559Z             },
2026-06-21T05:16:14.4377735Z             {
2026-06-21T05:16:14.4377930Z               "path": "crates/spt-term/src/digest.rs",
2026-06-21T05:16:14.4378164Z               "line": 30
2026-06-21T05:16:14.4378344Z             },
2026-06-21T05:16:14.4378502Z             {
2026-06-21T05:16:14.4378701Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T05:16:14.4379016Z               "line": 103
2026-06-21T05:16:14.4379198Z             },
2026-06-21T05:16:14.4379365Z             {
2026-06-21T05:16:14.4379565Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T05:16:14.4379827Z               "line": 167
2026-06-21T05:16:14.4380014Z             },
2026-06-21T05:16:14.4380180Z             {
2026-06-21T05:16:14.4380380Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T05:16:14.4380644Z               "line": 434
2026-06-21T05:16:14.4380825Z             },
2026-06-21T05:16:14.4380992Z             {
2026-06-21T05:16:14.4381169Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4381403Z               "line": 5650
2026-06-21T05:16:14.4381593Z             },
2026-06-21T05:16:14.4381755Z             {
2026-06-21T05:16:14.4381941Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4382170Z               "line": 5957
2026-06-21T05:16:14.4382356Z             }
2026-06-21T05:16:14.4382522Z           ]
2026-06-21T05:16:14.4382681Z         },
2026-06-21T05:16:14.4382842Z         "int": {
2026-06-21T05:16:14.4383019Z           "complete": true,
2026-06-21T05:16:14.4383222Z           "evidence": [
2026-06-21T05:16:14.4383407Z             {
2026-06-21T05:16:14.4383631Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-21T05:16:14.4383903Z               "line": 17
2026-06-21T05:16:14.4384092Z             }
2026-06-21T05:16:14.4384251Z           ]
2026-06-21T05:16:14.4384407Z         },
2026-06-21T05:16:14.4384566Z         "unit": {
2026-06-21T05:16:14.4384760Z           "complete": true,
2026-06-21T05:16:14.4384956Z           "evidence": [
2026-06-21T05:16:14.4388714Z             {
2026-06-21T05:16:14.4389029Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-21T05:16:14.4389320Z               "line": 375
2026-06-21T05:16:14.4389509Z             },
2026-06-21T05:16:14.4389683Z             {
2026-06-21T05:16:14.4389877Z               "path": "crates/spt-live/src/digest.rs",
2026-06-21T05:16:14.4390139Z               "line": 162
2026-06-21T05:16:14.4390327Z             },
2026-06-21T05:16:14.4390497Z             {
2026-06-21T05:16:14.4390674Z               "path": "crates/spt-live/src/digest.rs",
2026-06-21T05:16:14.4390910Z               "line": 179
2026-06-21T05:16:14.4391099Z             },
2026-06-21T05:16:14.4391390Z             {
2026-06-21T05:16:14.4391586Z               "path": "crates/spt-live/src/digest.rs",
2026-06-21T05:16:14.4391823Z               "line": 201
2026-06-21T05:16:14.4392006Z             },
2026-06-21T05:16:14.4392168Z             {
2026-06-21T05:16:14.4392353Z               "path": "crates/spt-live/src/digest.rs",
2026-06-21T05:16:14.4392587Z               "line": 212
2026-06-21T05:16:14.4392763Z             },
2026-06-21T05:16:14.4392930Z             {
2026-06-21T05:16:14.4393112Z               "path": "crates/spt-live/src/digest.rs",
2026-06-21T05:16:14.4393335Z               "line": 223
2026-06-21T05:16:14.4393522Z             },
2026-06-21T05:16:14.4393816Z             {
2026-06-21T05:16:14.4394018Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.4394267Z               "line": 1525
2026-06-21T05:16:14.4394449Z             },
2026-06-21T05:16:14.4394605Z             {
2026-06-21T05:16:14.4394797Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.4395049Z               "line": 1568
2026-06-21T05:16:14.4395225Z             },
2026-06-21T05:16:14.4395393Z             {
2026-06-21T05:16:14.4395592Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T05:16:14.4395836Z               "line": 606
2026-06-21T05:16:14.4396018Z             },
2026-06-21T05:16:14.4396188Z             {
2026-06-21T05:16:14.4396383Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T05:16:14.4396633Z               "line": 634
2026-06-21T05:16:14.4396820Z             },
2026-06-21T05:16:14.4396967Z             {
2026-06-21T05:16:14.4397154Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T05:16:14.4397387Z               "line": 646
2026-06-21T05:16:14.4397567Z             },
2026-06-21T05:16:14.4397726Z             {
2026-06-21T05:16:14.4397920Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T05:16:14.4398163Z               "line": 669
2026-06-21T05:16:14.4398341Z             },
2026-06-21T05:16:14.4398507Z             {
2026-06-21T05:16:14.4398680Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4398904Z               "line": 8503
2026-06-21T05:16:14.4399140Z             },
2026-06-21T05:16:14.4399298Z             {
2026-06-21T05:16:14.4399479Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4399699Z               "line": 8561
2026-06-21T05:16:14.4399880Z             }
2026-06-21T05:16:14.4400042Z           ]
2026-06-21T05:16:14.4400204Z         }
2026-06-21T05:16:14.4400361Z       }
2026-06-21T05:16:14.4400509Z     },
2026-06-21T05:16:14.4400661Z     {
2026-06-21T05:16:14.4400834Z       "id": "REQ-TERM-6",
2026-06-21T05:16:14.4402331Z       "title": "Thread-spanning digest across session boundaries: a per-endpoint session ledger (`<perch>/sessions.log`) appended at first bind and by `api boundary` on `/clear`|`/compact` session rotation, the digest enumerating the last K sessions so its rolling window bridges a boundary, and a distinctive in-timeline boundary marker (DigestEntry::Boundary). The digest follows the live-agent thread, not a single session.",
2026-06-21T05:16:14.4403566Z       "requiredStages": [
2026-06-21T05:16:14.4403759Z         "impl",
2026-06-21T05:16:14.4403920Z         "unit",
2026-06-21T05:16:14.4404078Z         "int"
2026-06-21T05:16:14.4404243Z       ],
2026-06-21T05:16:14.4404391Z       "stages": {
2026-06-21T05:16:14.4404565Z         "doc": {
2026-06-21T05:16:14.4404742Z           "complete": false,
2026-06-21T05:16:14.4404941Z           "evidence": []
2026-06-21T05:16:14.4405123Z         },
2026-06-21T05:16:14.4405280Z         "impl": {
2026-06-21T05:16:14.4405457Z           "complete": true,
2026-06-21T05:16:14.4405653Z           "evidence": [
2026-06-21T05:16:14.4405833Z             {
2026-06-21T05:16:14.4406034Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-21T05:16:14.4406302Z               "line": 132
2026-06-21T05:16:14.4406491Z             },
2026-06-21T05:16:14.4406654Z             {
2026-06-21T05:16:14.4406966Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-21T05:16:14.4407207Z               "line": 187
2026-06-21T05:16:14.4407385Z             },
2026-06-21T05:16:14.4407551Z             {
2026-06-21T05:16:14.4407746Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-21T05:16:14.4407990Z               "line": 17
2026-06-21T05:16:14.4408176Z             },
2026-06-21T05:16:14.4408337Z             {
2026-06-21T05:16:14.4408534Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-21T05:16:14.4408762Z               "line": 104
2026-06-21T05:16:14.4409025Z             },
2026-06-21T05:16:14.4409183Z             {
2026-06-21T05:16:14.4409541Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T05:16:14.4409639Z               "line": 319
2026-06-21T05:16:14.4409724Z             },
2026-06-21T05:16:14.4409805Z             {
2026-06-21T05:16:14.4409930Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T05:16:14.4410024Z               "line": 396
2026-06-21T05:16:14.4410111Z             }
2026-06-21T05:16:14.4410197Z           ]
2026-06-21T05:16:14.4410283Z         },
2026-06-21T05:16:14.4410368Z         "int": {
2026-06-21T05:16:14.4410459Z           "complete": true,
2026-06-21T05:16:14.4410540Z           "evidence": [
2026-06-21T05:16:14.4410630Z             {
2026-06-21T05:16:14.4410779Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-21T05:16:14.4410859Z               "line": 18
2026-06-21T05:16:14.4410940Z             }
2026-06-21T05:16:14.4411021Z           ]
2026-06-21T05:16:14.4411108Z         },
2026-06-21T05:16:14.4411188Z         "unit": {
2026-06-21T05:16:14.4411283Z           "complete": true,
2026-06-21T05:16:14.4411370Z           "evidence": [
2026-06-21T05:16:14.4411447Z             {
2026-06-21T05:16:14.4411569Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-21T05:16:14.4411651Z               "line": 135
2026-06-21T05:16:14.4411733Z             },
2026-06-21T05:16:14.4411823Z             {
2026-06-21T05:16:14.4411936Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-21T05:16:14.4412026Z               "line": 150
2026-06-21T05:16:14.4412107Z             },
2026-06-21T05:16:14.4412195Z             {
2026-06-21T05:16:14.4412300Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-21T05:16:14.4412387Z               "line": 166
2026-06-21T05:16:14.4412473Z             },
2026-06-21T05:16:14.4412558Z             {
2026-06-21T05:16:14.4412673Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-21T05:16:14.4412749Z               "line": 257
2026-06-21T05:16:14.4412844Z             },
2026-06-21T05:16:14.4412925Z             {
2026-06-21T05:16:14.4413055Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T05:16:14.4413150Z               "line": 738
2026-06-21T05:16:14.4413225Z             },
2026-06-21T05:16:14.4413312Z             {
2026-06-21T05:16:14.4413416Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T05:16:14.4413507Z               "line": 759
2026-06-21T05:16:14.4413592Z             },
2026-06-21T05:16:14.4413680Z             {
2026-06-21T05:16:14.4413789Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-21T05:16:14.4413869Z               "line": 726
2026-06-21T05:16:14.4413951Z             }
2026-06-21T05:16:14.4414032Z           ]
2026-06-21T05:16:14.4414112Z         }
2026-06-21T05:16:14.4414189Z       }
2026-06-21T05:16:14.4414266Z     },
2026-06-21T05:16:14.4414352Z     {
2026-06-21T05:16:14.4414436Z       "id": "REQ-TERM-7",
2026-06-21T05:16:14.4415559Z       "title": "Two-origin digest merge: spt-owned context-injection entries (psyche_download | echo_mirror | owl_message) appended by spt to the endpoint `digest.log`, timestamp-interleaved with the adapter's extracted activity records into one ordered timeline, via a distinct context-injection record category. Data model only this milestone; GUI collapse/expand and the echo-reads-digest delta loop are deferred to the surfaces that consume them.",
2026-06-21T05:16:14.4415773Z       "requiredStages": [
2026-06-21T05:16:14.4415855Z         "impl",
2026-06-21T05:16:14.4415936Z         "unit",
2026-06-21T05:16:14.4416026Z         "int"
2026-06-21T05:16:14.4416116Z       ],
2026-06-21T05:16:14.4416198Z       "stages": {
2026-06-21T05:16:14.4416279Z         "doc": {
2026-06-21T05:16:14.4416369Z           "complete": false,
2026-06-21T05:16:14.4416460Z           "evidence": []
2026-06-21T05:16:14.4416547Z         },
2026-06-21T05:16:14.4416627Z         "impl": {
2026-06-21T05:16:14.4416712Z           "complete": true,
2026-06-21T05:16:14.4416804Z           "evidence": [
2026-06-21T05:16:14.4416960Z             {
2026-06-21T05:16:14.4417075Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-21T05:16:14.4417167Z               "line": 133
2026-06-21T05:16:14.4417252Z             },
2026-06-21T05:16:14.4417332Z             {
2026-06-21T05:16:14.4417446Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-21T05:16:14.4417541Z               "line": 326
2026-06-21T05:16:14.4417630Z             },
2026-06-21T05:16:14.4417715Z             {
2026-06-21T05:16:14.4417816Z               "path": "crates/spt-live/src/inject.rs",
2026-06-21T05:16:14.4417902Z               "line": 15
2026-06-21T05:16:14.4417983Z             },
2026-06-21T05:16:14.4418063Z             {
2026-06-21T05:16:14.4418174Z               "path": "crates/spt-live/src/inject.rs",
2026-06-21T05:16:14.4418269Z               "line": 32
2026-06-21T05:16:14.4418353Z             },
2026-06-21T05:16:14.4418436Z             {
2026-06-21T05:16:14.4418559Z               "path": "crates/spt-store/src/history.rs",
2026-06-21T05:16:14.4418635Z               "line": 49
2026-06-21T05:16:14.4418722Z             },
2026-06-21T05:16:14.4418803Z             {
2026-06-21T05:16:14.4418922Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T05:16:14.4419099Z               "line": 286
2026-06-21T05:16:14.4419175Z             },
2026-06-21T05:16:14.4419270Z             {
2026-06-21T05:16:14.4419395Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T05:16:14.4419480Z               "line": 320
2026-06-21T05:16:14.4419560Z             }
2026-06-21T05:16:14.4419641Z           ]
2026-06-21T05:16:14.4419729Z         },
2026-06-21T05:16:14.4419809Z         "int": {
2026-06-21T05:16:14.4419909Z           "complete": true,
2026-06-21T05:16:14.4419995Z           "evidence": [
2026-06-21T05:16:14.4420081Z             {
2026-06-21T05:16:14.4420222Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-21T05:16:14.4420317Z               "line": 19
2026-06-21T05:16:14.4420404Z             }
2026-06-21T05:16:14.4420490Z           ]
2026-06-21T05:16:14.4420570Z         },
2026-06-21T05:16:14.4420656Z         "unit": {
2026-06-21T05:16:14.4420743Z           "complete": true,
2026-06-21T05:16:14.4420824Z           "evidence": [
2026-06-21T05:16:14.4420908Z             {
2026-06-21T05:16:14.4421029Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-21T05:16:14.4421114Z               "line": 455
2026-06-21T05:16:14.4421200Z             },
2026-06-21T05:16:14.4421271Z             {
2026-06-21T05:16:14.4421386Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-21T05:16:14.4421477Z               "line": 568
2026-06-21T05:16:14.4421562Z             },
2026-06-21T05:16:14.4421644Z             {
2026-06-21T05:16:14.4421753Z               "path": "crates/spt-live/src/inject.rs",
2026-06-21T05:16:14.4421843Z               "line": 58
2026-06-21T05:16:14.4421925Z             },
2026-06-21T05:16:14.4422007Z             {
2026-06-21T05:16:14.4422115Z               "path": "crates/spt-live/src/inject.rs",
2026-06-21T05:16:14.4422211Z               "line": 77
2026-06-21T05:16:14.4422293Z             },
2026-06-21T05:16:14.4422374Z             {
2026-06-21T05:16:14.4422477Z               "path": "crates/spt-live/src/inject.rs",
2026-06-21T05:16:14.4422562Z               "line": 87
2026-06-21T05:16:14.4422648Z             },
2026-06-21T05:16:14.4422832Z             {
2026-06-21T05:16:14.4422951Z               "path": "crates/spt-store/src/history.rs",
2026-06-21T05:16:14.4423034Z               "line": 94
2026-06-21T05:16:14.4423104Z             },
2026-06-21T05:16:14.4423194Z             {
2026-06-21T05:16:14.4423309Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T05:16:14.4423395Z               "line": 691
2026-06-21T05:16:14.4423480Z             },
2026-06-21T05:16:14.4423572Z             {
2026-06-21T05:16:14.4423691Z               "path": "crates/spt-term/src/projection.rs",
2026-06-21T05:16:14.4423776Z               "line": 716
2026-06-21T05:16:14.4423958Z             }
2026-06-21T05:16:14.4424039Z           ]
2026-06-21T05:16:14.4424124Z         }
2026-06-21T05:16:14.4424196Z       }
2026-06-21T05:16:14.4424282Z     },
2026-06-21T05:16:14.4424368Z     {
2026-06-21T05:16:14.4424458Z       "id": "REQ-UPD-1",
2026-06-21T05:16:14.4424574Z       "title": "Peer-propagated update over P2P",
2026-06-21T05:16:14.4424667Z       "requiredStages": [
2026-06-21T05:16:14.4424763Z         "impl",
2026-06-21T05:16:14.4424850Z         "unit",
2026-06-21T05:16:14.4424940Z         "int"
2026-06-21T05:16:14.4425030Z       ],
2026-06-21T05:16:14.4425112Z       "stages": {
2026-06-21T05:16:14.4425203Z         "doc": {
2026-06-21T05:16:14.4425283Z           "complete": false,
2026-06-21T05:16:14.4425377Z           "evidence": []
2026-06-21T05:16:14.4425463Z         },
2026-06-21T05:16:14.4425549Z         "impl": {
2026-06-21T05:16:14.4425637Z           "complete": true,
2026-06-21T05:16:14.4425713Z           "evidence": [
2026-06-21T05:16:14.4425799Z             {
2026-06-21T05:16:14.4425919Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T05:16:14.4426014Z               "line": 28
2026-06-21T05:16:14.4426100Z             },
2026-06-21T05:16:14.4426181Z             {
2026-06-21T05:16:14.4426309Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T05:16:14.4426390Z               "line": 103
2026-06-21T05:16:14.4426482Z             },
2026-06-21T05:16:14.4426568Z             {
2026-06-21T05:16:14.4426691Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T05:16:14.4426783Z               "line": 342
2026-06-21T05:16:14.4426867Z             },
2026-06-21T05:16:14.4426953Z             {
2026-06-21T05:16:14.4427073Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.4427159Z               "line": 22
2026-06-21T05:16:14.4427244Z             },
2026-06-21T05:16:14.4427325Z             {
2026-06-21T05:16:14.4427455Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.4427549Z               "line": 207
2026-06-21T05:16:14.4427640Z             },
2026-06-21T05:16:14.4427722Z             {
2026-06-21T05:16:14.4427849Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.4427939Z               "line": 283
2026-06-21T05:16:14.4428025Z             },
2026-06-21T05:16:14.4428110Z             {
2026-06-21T05:16:14.4428223Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.4428328Z               "line": 340
2026-06-21T05:16:14.4428409Z             },
2026-06-21T05:16:14.4428486Z             {
2026-06-21T05:16:14.4428604Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-21T05:16:14.4428696Z               "line": 37
2026-06-21T05:16:14.4428781Z             }
2026-06-21T05:16:14.4428862Z           ]
2026-06-21T05:16:14.4429025Z         },
2026-06-21T05:16:14.4429106Z         "int": {
2026-06-21T05:16:14.4429205Z           "complete": true,
2026-06-21T05:16:14.4429291Z           "evidence": [
2026-06-21T05:16:14.4429382Z             {
2026-06-21T05:16:14.4429506Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-21T05:16:14.4429587Z               "line": 207
2026-06-21T05:16:14.4429678Z             },
2026-06-21T05:16:14.4429763Z             {
2026-06-21T05:16:14.4429882Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-21T05:16:14.4430092Z               "line": 1082
2026-06-21T05:16:14.4430178Z             }
2026-06-21T05:16:14.4430265Z           ]
2026-06-21T05:16:14.4430346Z         },
2026-06-21T05:16:14.4430440Z         "unit": {
2026-06-21T05:16:14.4430521Z           "complete": true,
2026-06-21T05:16:14.4430609Z           "evidence": [
2026-06-21T05:16:14.4430693Z             {
2026-06-21T05:16:14.4430816Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.4430901Z               "line": 490
2026-06-21T05:16:14.4430989Z             },
2026-06-21T05:16:14.4431069Z             {
2026-06-21T05:16:14.4431188Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.4431379Z               "line": 616
2026-06-21T05:16:14.4431464Z             },
2026-06-21T05:16:14.4431546Z             {
2026-06-21T05:16:14.4431674Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-21T05:16:14.4431760Z               "line": 277
2026-06-21T05:16:14.4431841Z             },
2026-06-21T05:16:14.4431923Z             {
2026-06-21T05:16:14.4432042Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-21T05:16:14.4432127Z               "line": 124
2026-06-21T05:16:14.4432219Z             },
2026-06-21T05:16:14.4432304Z             {
2026-06-21T05:16:14.4432404Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-21T05:16:14.4432500Z               "line": 200
2026-06-21T05:16:14.4432576Z             }
2026-06-21T05:16:14.4432661Z           ]
2026-06-21T05:16:14.4432733Z         }
2026-06-21T05:16:14.4432824Z       }
2026-06-21T05:16:14.4432910Z     },
2026-06-21T05:16:14.4432994Z     {
2026-06-21T05:16:14.4433089Z       "id": "REQ-UPD-2",
2026-06-21T05:16:14.4433237Z       "title": "All binaries signature-verified before handoff",
2026-06-21T05:16:14.4433330Z       "requiredStages": [
2026-06-21T05:16:14.4433411Z         "impl",
2026-06-21T05:16:14.4433502Z         "unit"
2026-06-21T05:16:14.4433584Z       ],
2026-06-21T05:16:14.4433668Z       "stages": {
2026-06-21T05:16:14.4433764Z         "doc": {
2026-06-21T05:16:14.4433861Z           "complete": false,
2026-06-21T05:16:14.4433950Z           "evidence": []
2026-06-21T05:16:14.4434031Z         },
2026-06-21T05:16:14.4434118Z         "impl": {
2026-06-21T05:16:14.4434213Z           "complete": true,
2026-06-21T05:16:14.4434298Z           "evidence": [
2026-06-21T05:16:14.4434393Z             {
2026-06-21T05:16:14.4434513Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T05:16:14.4434608Z               "line": 343
2026-06-21T05:16:14.4434684Z             },
2026-06-21T05:16:14.4434771Z             {
2026-06-21T05:16:14.4434894Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T05:16:14.4434989Z               "line": 476
2026-06-21T05:16:14.4435072Z             },
2026-06-21T05:16:14.4435153Z             {
2026-06-21T05:16:14.4435276Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.4435357Z               "line": 29
2026-06-21T05:16:14.4435439Z             },
2026-06-21T05:16:14.4435528Z             {
2026-06-21T05:16:14.4435643Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.4435739Z               "line": 271
2026-06-21T05:16:14.4435820Z             },
2026-06-21T05:16:14.4435904Z             {
2026-06-21T05:16:14.4436028Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.4436118Z               "line": 288
2026-06-21T05:16:14.4436193Z             },
2026-06-21T05:16:14.4436278Z             {
2026-06-21T05:16:14.4436393Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.4436484Z               "line": 408
2026-06-21T05:16:14.4436578Z             },
2026-06-21T05:16:14.4436665Z             {
2026-06-21T05:16:14.4436779Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.4436864Z               "line": 558
2026-06-21T05:16:14.4436941Z             },
2026-06-21T05:16:14.4437018Z             {
2026-06-21T05:16:14.4437133Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-21T05:16:14.4437299Z               "line": 155
2026-06-21T05:16:14.4437385Z             }
2026-06-21T05:16:14.4437471Z           ]
2026-06-21T05:16:14.4437556Z         },
2026-06-21T05:16:14.4437638Z         "int": {
2026-06-21T05:16:14.4437742Z           "complete": false,
2026-06-21T05:16:14.4437837Z           "evidence": []
2026-06-21T05:16:14.4437924Z         },
2026-06-21T05:16:14.4438006Z         "unit": {
2026-06-21T05:16:14.4438094Z           "complete": true,
2026-06-21T05:16:14.4438176Z           "evidence": [
2026-06-21T05:16:14.4438263Z             {
2026-06-21T05:16:14.4438381Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.4438532Z               "line": 750
2026-06-21T05:16:14.4438623Z             },
2026-06-21T05:16:14.4438712Z             {
2026-06-21T05:16:14.4438826Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.4438916Z               "line": 811
2026-06-21T05:16:14.4439079Z             },
2026-06-21T05:16:14.4439155Z             {
2026-06-21T05:16:14.4439270Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.4439361Z               "line": 825
2026-06-21T05:16:14.4439446Z             },
2026-06-21T05:16:14.4439532Z             {
2026-06-21T05:16:14.4439651Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.4439737Z               "line": 841
2026-06-21T05:16:14.4439827Z             },
2026-06-21T05:16:14.4439910Z             {
2026-06-21T05:16:14.4440028Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.4440118Z               "line": 932
2026-06-21T05:16:14.4440195Z             },
2026-06-21T05:16:14.4440285Z             {
2026-06-21T05:16:14.4440395Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-21T05:16:14.4440481Z               "line": 414
2026-06-21T05:16:14.4440567Z             },
2026-06-21T05:16:14.4440652Z             {
2026-06-21T05:16:14.4440776Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-21T05:16:14.4440864Z               "line": 427
2026-06-21T05:16:14.4440948Z             },
2026-06-21T05:16:14.4441029Z             {
2026-06-21T05:16:14.4441154Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-21T05:16:14.4441230Z               "line": 410
2026-06-21T05:16:14.4441319Z             }
2026-06-21T05:16:14.4441409Z           ]
2026-06-21T05:16:14.4441491Z         }
2026-06-21T05:16:14.4441577Z       }
2026-06-21T05:16:14.4441653Z     },
2026-06-21T05:16:14.4441743Z     {
2026-06-21T05:16:14.4441834Z       "id": "REQ-UPD-3",
2026-06-21T05:16:14.4442010Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-21T05:16:14.4442121Z       "requiredStages": [
2026-06-21T05:16:14.4442197Z         "impl",
2026-06-21T05:16:14.4442287Z         "unit",
2026-06-21T05:16:14.4442377Z         "int"
2026-06-21T05:16:14.4442469Z       ],
2026-06-21T05:16:14.4442554Z       "stages": {
2026-06-21T05:16:14.4442635Z         "doc": {
2026-06-21T05:16:14.4442735Z           "complete": false,
2026-06-21T05:16:14.4442821Z           "evidence": []
2026-06-21T05:16:14.4442906Z         },
2026-06-21T05:16:14.4442992Z         "impl": {
2026-06-21T05:16:14.4443089Z           "complete": true,
2026-06-21T05:16:14.4443174Z           "evidence": [
2026-06-21T05:16:14.4443259Z             {
2026-06-21T05:16:14.4443389Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T05:16:14.4443475Z               "line": 40
2026-06-21T05:16:14.4443559Z             },
2026-06-21T05:16:14.4443645Z             {
2026-06-21T05:16:14.4443768Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T05:16:14.4443853Z               "line": 87
2026-06-21T05:16:14.4443938Z             },
2026-06-21T05:16:14.4444019Z             {
2026-06-21T05:16:14.4444134Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-21T05:16:14.4444229Z               "line": 1042
2026-06-21T05:16:14.4444310Z             },
2026-06-21T05:16:14.4444501Z             {
2026-06-21T05:16:14.4444610Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-21T05:16:14.4444702Z               "line": 1843
2026-06-21T05:16:14.4444787Z             },
2026-06-21T05:16:14.4444873Z             {
2026-06-21T05:16:14.4444993Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-21T05:16:14.4445083Z               "line": 26
2026-06-21T05:16:14.4445173Z             },
2026-06-21T05:16:14.4445254Z             {
2026-06-21T05:16:14.4445364Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-21T05:16:14.4445464Z               "line": 114
2026-06-21T05:16:14.4445540Z             },
2026-06-21T05:16:14.4445722Z             {
2026-06-21T05:16:14.4445836Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-21T05:16:14.4445922Z               "line": 246
2026-06-21T05:16:14.4446023Z             },
2026-06-21T05:16:14.4446107Z             {
2026-06-21T05:16:14.4446218Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4446314Z               "line": 2442
2026-06-21T05:16:14.4446399Z             }
2026-06-21T05:16:14.4446483Z           ]
2026-06-21T05:16:14.4446564Z         },
2026-06-21T05:16:14.4446660Z         "int": {
2026-06-21T05:16:14.4446744Z           "complete": true,
2026-06-21T05:16:14.4446843Z           "evidence": [
2026-06-21T05:16:14.4446929Z             {
2026-06-21T05:16:14.4447059Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-21T05:16:14.4447143Z               "line": 58
2026-06-21T05:16:14.4447230Z             }
2026-06-21T05:16:14.4447320Z           ]
2026-06-21T05:16:14.4447402Z         },
2026-06-21T05:16:14.4447487Z         "unit": {
2026-06-21T05:16:14.4447583Z           "complete": true,
2026-06-21T05:16:14.4447678Z           "evidence": [
2026-06-21T05:16:14.4447754Z             {
2026-06-21T05:16:14.4447879Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T05:16:14.4447969Z               "line": 532
2026-06-21T05:16:14.4448050Z             },
2026-06-21T05:16:14.4448131Z             {
2026-06-21T05:16:14.4448237Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T05:16:14.4448321Z               "line": 585
2026-06-21T05:16:14.4448407Z             },
2026-06-21T05:16:14.4448494Z             {
2026-06-21T05:16:14.4448617Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T05:16:14.4448698Z               "line": 653
2026-06-21T05:16:14.4448779Z             },
2026-06-21T05:16:14.4448862Z             {
2026-06-21T05:16:14.4449045Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-21T05:16:14.4449121Z               "line": 1102
2026-06-21T05:16:14.4449212Z             },
2026-06-21T05:16:14.4449305Z             {
2026-06-21T05:16:14.4449438Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-21T05:16:14.4449544Z               "line": 271
2026-06-21T05:16:14.4449629Z             },
2026-06-21T05:16:14.4449720Z             {
2026-06-21T05:16:14.4449826Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-21T05:16:14.4449916Z               "line": 295
2026-06-21T05:16:14.4450006Z             },
2026-06-21T05:16:14.4450087Z             {
2026-06-21T05:16:14.4450206Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-21T05:16:14.4450297Z               "line": 316
2026-06-21T05:16:14.4450377Z             },
2026-06-21T05:16:14.4450460Z             {
2026-06-21T05:16:14.4450583Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-21T05:16:14.4450669Z               "line": 332
2026-06-21T05:16:14.4450750Z             }
2026-06-21T05:16:14.4450841Z           ]
2026-06-21T05:16:14.4450926Z         }
2026-06-21T05:16:14.4451007Z       }
2026-06-21T05:16:14.4451090Z     },
2026-06-21T05:16:14.4451179Z     {
2026-06-21T05:16:14.4451274Z       "id": "REQ-UPD-4",
2026-06-21T05:16:14.4451452Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-21T05:16:14.4451536Z       "requiredStages": [
2026-06-21T05:16:14.4451623Z         "impl",
2026-06-21T05:16:14.4451818Z         "unit"
2026-06-21T05:16:14.4451908Z       ],
2026-06-21T05:16:14.4451993Z       "stages": {
2026-06-21T05:16:14.4452084Z         "doc": {
2026-06-21T05:16:14.4452170Z           "complete": false,
2026-06-21T05:16:14.4452265Z           "evidence": []
2026-06-21T05:16:14.4452351Z         },
2026-06-21T05:16:14.4452442Z         "impl": {
2026-06-21T05:16:14.4452537Z           "complete": true,
2026-06-21T05:16:14.4452627Z           "evidence": [
2026-06-21T05:16:14.4452714Z             {
2026-06-21T05:16:14.4452838Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T05:16:14.4452927Z               "line": 41
2026-06-21T05:16:14.4453100Z             },
2026-06-21T05:16:14.4453190Z             {
2026-06-21T05:16:14.4453305Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T05:16:14.4453391Z               "line": 88
2026-06-21T05:16:14.4453476Z             },
2026-06-21T05:16:14.4453557Z             {
2026-06-21T05:16:14.4453664Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-21T05:16:14.4453748Z               "line": 23
2026-06-21T05:16:14.4453829Z             },
2026-06-21T05:16:14.4453910Z             {
2026-06-21T05:16:14.4454030Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-21T05:16:14.4454110Z               "line": 56
2026-06-21T05:16:14.4454200Z             },
2026-06-21T05:16:14.4454281Z             {
2026-06-21T05:16:14.4454399Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-21T05:16:14.4454493Z               "line": 77
2026-06-21T05:16:14.4454579Z             },
2026-06-21T05:16:14.4454661Z             {
2026-06-21T05:16:14.4457765Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-21T05:16:14.4457890Z               "line": 236
2026-06-21T05:16:14.4457985Z             },
2026-06-21T05:16:14.4458071Z             {
2026-06-21T05:16:14.4458200Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-21T05:16:14.4458295Z               "line": 108
2026-06-21T05:16:14.4458381Z             },
2026-06-21T05:16:14.4458467Z             {
2026-06-21T05:16:14.4458581Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T05:16:14.4458667Z               "line": 270
2026-06-21T05:16:14.4458744Z             },
2026-06-21T05:16:14.4458825Z             {
2026-06-21T05:16:14.4458934Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4459116Z               "line": 2441
2026-06-21T05:16:14.4459201Z             }
2026-06-21T05:16:14.4459282Z           ]
2026-06-21T05:16:14.4459364Z         },
2026-06-21T05:16:14.4459450Z         "int": {
2026-06-21T05:16:14.4459553Z           "complete": false,
2026-06-21T05:16:14.4459653Z           "evidence": []
2026-06-21T05:16:14.4459729Z         },
2026-06-21T05:16:14.4459815Z         "unit": {
2026-06-21T05:16:14.4459898Z           "complete": true,
2026-06-21T05:16:14.4459993Z           "evidence": [
2026-06-21T05:16:14.4460061Z             {
2026-06-21T05:16:14.4460199Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T05:16:14.4460299Z               "line": 581
2026-06-21T05:16:14.4460386Z             },
2026-06-21T05:16:14.4460466Z             {
2026-06-21T05:16:14.4460594Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T05:16:14.4460676Z               "line": 706
2026-06-21T05:16:14.4460753Z             },
2026-06-21T05:16:14.4460838Z             {
2026-06-21T05:16:14.4460957Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-21T05:16:14.4461039Z               "line": 384
2026-06-21T05:16:14.4461124Z             },
2026-06-21T05:16:14.4461200Z             {
2026-06-21T05:16:14.4461325Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-21T05:16:14.4461415Z               "line": 102
2026-06-21T05:16:14.4461496Z             },
2026-06-21T05:16:14.4461577Z             {
2026-06-21T05:16:14.4461688Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-21T05:16:14.4461772Z               "line": 123
2026-06-21T05:16:14.4461853Z             },
2026-06-21T05:16:14.4462091Z             {
2026-06-21T05:16:14.4462207Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-21T05:16:14.4462289Z               "line": 142
2026-06-21T05:16:14.4462374Z             },
2026-06-21T05:16:14.4462458Z             {
2026-06-21T05:16:14.4462568Z               "path": "crates/spt-store/src/info.rs",
2026-06-21T05:16:14.4462649Z               "line": 582
2026-06-21T05:16:14.4462735Z             },
2026-06-21T05:16:14.4462816Z             {
2026-06-21T05:16:14.4462921Z               "path": "crates/spt-store/src/perch.rs",
2026-06-21T05:16:14.4463012Z               "line": 566
2026-06-21T05:16:14.4463097Z             },
2026-06-21T05:16:14.4463275Z             {
2026-06-21T05:16:14.4463384Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4463469Z               "line": 8256
2026-06-21T05:16:14.4463555Z             }
2026-06-21T05:16:14.4463646Z           ]
2026-06-21T05:16:14.4463731Z         }
2026-06-21T05:16:14.4463807Z       }
2026-06-21T05:16:14.4463890Z     },
2026-06-21T05:16:14.4463975Z     {
2026-06-21T05:16:14.4464070Z       "id": "REQ-UPD-5",
2026-06-21T05:16:14.4464205Z       "title": "spt-core ripple-updates registered adapters",
2026-06-21T05:16:14.4464304Z       "requiredStages": [
2026-06-21T05:16:14.4464389Z         "impl",
2026-06-21T05:16:14.4464475Z         "unit"
2026-06-21T05:16:14.4464558Z       ],
2026-06-21T05:16:14.4464646Z       "stages": {
2026-06-21T05:16:14.4464727Z         "doc": {
2026-06-21T05:16:14.4464812Z           "complete": false,
2026-06-21T05:16:14.4464908Z           "evidence": []
2026-06-21T05:16:14.4464996Z         },
2026-06-21T05:16:14.4465072Z         "impl": {
2026-06-21T05:16:14.4465163Z           "complete": true,
2026-06-21T05:16:14.4465245Z           "evidence": [
2026-06-21T05:16:14.4465330Z             {
2026-06-21T05:16:14.4465463Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T05:16:14.4465555Z               "line": 27
2026-06-21T05:16:14.4465650Z             },
2026-06-21T05:16:14.4465720Z             {
2026-06-21T05:16:14.4465850Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T05:16:14.4465936Z               "line": 87
2026-06-21T05:16:14.4466021Z             },
2026-06-21T05:16:14.4466108Z             {
2026-06-21T05:16:14.4466232Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T05:16:14.4466326Z               "line": 145
2026-06-21T05:16:14.4466413Z             },
2026-06-21T05:16:14.4466499Z             {
2026-06-21T05:16:14.4466613Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.4466698Z               "line": 492
2026-06-21T05:16:14.4466790Z             },
2026-06-21T05:16:14.4466870Z             {
2026-06-21T05:16:14.4466985Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.4467067Z               "line": 546
2026-06-21T05:16:14.4467148Z             }
2026-06-21T05:16:14.4467228Z           ]
2026-06-21T05:16:14.4467309Z         },
2026-06-21T05:16:14.4467396Z         "int": {
2026-06-21T05:16:14.4467486Z           "complete": false,
2026-06-21T05:16:14.4467575Z           "evidence": []
2026-06-21T05:16:14.4467656Z         },
2026-06-21T05:16:14.4467742Z         "unit": {
2026-06-21T05:16:14.4467831Z           "complete": true,
2026-06-21T05:16:14.4467916Z           "evidence": [
2026-06-21T05:16:14.4467997Z             {
2026-06-21T05:16:14.4468122Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T05:16:14.4468212Z               "line": 272
2026-06-21T05:16:14.4468292Z             },
2026-06-21T05:16:14.4468374Z             {
2026-06-21T05:16:14.4468498Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T05:16:14.4468592Z               "line": 286
2026-06-21T05:16:14.4468680Z             },
2026-06-21T05:16:14.4468765Z             {
2026-06-21T05:16:14.4468884Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T05:16:14.4469037Z               "line": 300
2026-06-21T05:16:14.4469217Z             },
2026-06-21T05:16:14.4469304Z             {
2026-06-21T05:16:14.4469432Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T05:16:14.4469513Z               "line": 314
2026-06-21T05:16:14.4469599Z             },
2026-06-21T05:16:14.4469681Z             {
2026-06-21T05:16:14.4469794Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T05:16:14.4469880Z               "line": 348
2026-06-21T05:16:14.4469963Z             },
2026-06-21T05:16:14.4470044Z             {
2026-06-21T05:16:14.4470165Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.4470246Z               "line": 1071
2026-06-21T05:16:14.4470431Z             }
2026-06-21T05:16:14.4470506Z           ]
2026-06-21T05:16:14.4470597Z         }
2026-06-21T05:16:14.4470683Z       }
2026-06-21T05:16:14.4470764Z     },
2026-06-21T05:16:14.4470845Z     {
2026-06-21T05:16:14.4470926Z       "id": "REQ-UPD-6",
2026-06-21T05:16:14.4471713Z       "title": "Platform-targeted update sets and debug rollout: signed multi-platform update metadata, recipient platform selection, channel-scoped monotonic counters, debug-channel opt-in via release-key overlay, local staging plus pull-based peer propagation, and maintainer-only convergence tooling (ADR-0016)",
2026-06-21T05:16:14.4471813Z       "requiredStages": [
2026-06-21T05:16:14.4471895Z         "doc",
2026-06-21T05:16:14.4471985Z         "impl",
2026-06-21T05:16:14.4472066Z         "unit",
2026-06-21T05:16:14.4472151Z         "int"
2026-06-21T05:16:14.4472234Z       ],
2026-06-21T05:16:14.4472318Z       "stages": {
2026-06-21T05:16:14.4472404Z         "doc": {
2026-06-21T05:16:14.4472501Z           "complete": true,
2026-06-21T05:16:14.4472587Z           "evidence": [
2026-06-21T05:16:14.4472661Z             {
2026-06-21T05:16:14.4472786Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-21T05:16:14.4472873Z               "line": 3
2026-06-21T05:16:14.4472957Z             },
2026-06-21T05:16:14.4473042Z             {
2026-06-21T05:16:14.4473152Z               "path": "docs/DEBUG-ROLLOUT.md",
2026-06-21T05:16:14.4473238Z               "line": 3
2026-06-21T05:16:14.4473314Z             },
2026-06-21T05:16:14.4473395Z             {
2026-06-21T05:16:14.4473553Z               "path": "docs/adr/0016-platform-targeted-update-sets.md",
2026-06-21T05:16:14.4473652Z               "line": 3
2026-06-21T05:16:14.4473733Z             }
2026-06-21T05:16:14.4473811Z           ]
2026-06-21T05:16:14.4473896Z         },
2026-06-21T05:16:14.4473981Z         "impl": {
2026-06-21T05:16:14.4474082Z           "complete": true,
2026-06-21T05:16:14.4474164Z           "evidence": [
2026-06-21T05:16:14.4474248Z             {
2026-06-21T05:16:14.4474368Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T05:16:14.4474450Z               "line": 76
2026-06-21T05:16:14.4474535Z             },
2026-06-21T05:16:14.4474620Z             {
2026-06-21T05:16:14.4474745Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T05:16:14.4474836Z               "line": 212
2026-06-21T05:16:14.4474920Z             },
2026-06-21T05:16:14.4474997Z             {
2026-06-21T05:16:14.4475123Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T05:16:14.4475216Z               "line": 69
2026-06-21T05:16:14.4475296Z             },
2026-06-21T05:16:14.4475387Z             {
2026-06-21T05:16:14.4475505Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T05:16:14.4475585Z               "line": 133
2026-06-21T05:16:14.4475675Z             },
2026-06-21T05:16:14.4475757Z             {
2026-06-21T05:16:14.4475866Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T05:16:14.4475956Z               "line": 243
2026-06-21T05:16:14.4476038Z             },
2026-06-21T05:16:14.4476120Z             {
2026-06-21T05:16:14.4476243Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T05:16:14.4476324Z               "line": 406
2026-06-21T05:16:14.4476410Z             },
2026-06-21T05:16:14.4476572Z             {
2026-06-21T05:16:14.4476692Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T05:16:14.4476787Z               "line": 534
2026-06-21T05:16:14.4476868Z             },
2026-06-21T05:16:14.4476953Z             {
2026-06-21T05:16:14.4477073Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T05:16:14.4477159Z               "line": 548
2026-06-21T05:16:14.4477249Z             },
2026-06-21T05:16:14.4477327Z             {
2026-06-21T05:16:14.4477440Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T05:16:14.4477516Z               "line": 603
2026-06-21T05:16:14.4477670Z             },
2026-06-21T05:16:14.4477754Z             {
2026-06-21T05:16:14.4477860Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T05:16:14.4477946Z               "line": 634
2026-06-21T05:16:14.4478032Z             },
2026-06-21T05:16:14.4478112Z             {
2026-06-21T05:16:14.4478235Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-21T05:16:14.4478326Z               "line": 137
2026-06-21T05:16:14.4478405Z             },
2026-06-21T05:16:14.4478485Z             {
2026-06-21T05:16:14.4478615Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-21T05:16:14.4478701Z               "line": 184
2026-06-21T05:16:14.4478786Z             },
2026-06-21T05:16:14.4478867Z             {
2026-06-21T05:16:14.4479044Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.4479138Z               "line": 78
2026-06-21T05:16:14.4479220Z             },
2026-06-21T05:16:14.4479306Z             {
2026-06-21T05:16:14.4479425Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.4479544Z               "line": 114
2026-06-21T05:16:14.4479626Z             },
2026-06-21T05:16:14.4479711Z             {
2026-06-21T05:16:14.4479830Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.4479907Z               "line": 185
2026-06-21T05:16:14.4479997Z             },
2026-06-21T05:16:14.4480078Z             {
2026-06-21T05:16:14.4480194Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.4480284Z               "line": 260
2026-06-21T05:16:14.4480368Z             },
2026-06-21T05:16:14.4480450Z             {
2026-06-21T05:16:14.4480566Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.4480655Z               "line": 292
2026-06-21T05:16:14.4480735Z             },
2026-06-21T05:16:14.4480821Z             {
2026-06-21T05:16:14.4480930Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.4481014Z               "line": 323
2026-06-21T05:16:14.4481104Z             },
2026-06-21T05:16:14.4481186Z             {
2026-06-21T05:16:14.4481306Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.4481390Z               "line": 346
2026-06-21T05:16:14.4481472Z             },
2026-06-21T05:16:14.4481554Z             {
2026-06-21T05:16:14.4481672Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.4481772Z               "line": 388
2026-06-21T05:16:14.4481854Z             },
2026-06-21T05:16:14.4481940Z             {
2026-06-21T05:16:14.4482058Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.4482135Z               "line": 398
2026-06-21T05:16:14.4482221Z             },
2026-06-21T05:16:14.4482302Z             {
2026-06-21T05:16:14.4482416Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.4482503Z               "line": 410
2026-06-21T05:16:14.4482578Z             },
2026-06-21T05:16:14.4482663Z             {
2026-06-21T05:16:14.4482774Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.4482864Z               "line": 420
2026-06-21T05:16:14.4482936Z             },
2026-06-21T05:16:14.4483017Z             {
2026-06-21T05:16:14.4483123Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.4483203Z               "line": 439
2026-06-21T05:16:14.4483390Z             },
2026-06-21T05:16:14.4483471Z             {
2026-06-21T05:16:14.4483593Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.4483678Z               "line": 449
2026-06-21T05:16:14.4483755Z             },
2026-06-21T05:16:14.4483828Z             {
2026-06-21T05:16:14.4483945Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.4484027Z               "line": 94
2026-06-21T05:16:14.4484113Z             },
2026-06-21T05:16:14.4484199Z             {
2026-06-21T05:16:14.4484312Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.4484400Z               "line": 120
2026-06-21T05:16:14.4484589Z             },
2026-06-21T05:16:14.4484671Z             {
2026-06-21T05:16:14.4484780Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.4484861Z               "line": 135
2026-06-21T05:16:14.4484937Z             },
2026-06-21T05:16:14.4485019Z             {
2026-06-21T05:16:14.4485137Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.4485218Z               "line": 162
2026-06-21T05:16:14.4485301Z             },
2026-06-21T05:16:14.4485382Z             {
2026-06-21T05:16:14.4485500Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.4485586Z               "line": 174
2026-06-21T05:16:14.4485668Z             },
2026-06-21T05:16:14.4485748Z             {
2026-06-21T05:16:14.4485857Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.4485947Z               "line": 185
2026-06-21T05:16:14.4486033Z             },
2026-06-21T05:16:14.4486116Z             {
2026-06-21T05:16:14.4486235Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.4486322Z               "line": 451
2026-06-21T05:16:14.4486408Z             },
2026-06-21T05:16:14.4486488Z             {
2026-06-21T05:16:14.4486593Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.4486689Z               "line": 573
2026-06-21T05:16:14.4486770Z             },
2026-06-21T05:16:14.4486855Z             {
2026-06-21T05:16:14.4486961Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-21T05:16:14.4487042Z               "line": 171
2026-06-21T05:16:14.4487127Z             },
2026-06-21T05:16:14.4487209Z             {
2026-06-21T05:16:14.4487318Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-21T05:16:14.4487399Z               "line": 65
2026-06-21T05:16:14.4487490Z             },
2026-06-21T05:16:14.4487567Z             {
2026-06-21T05:16:14.4487685Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-21T05:16:14.4487771Z               "line": 71
2026-06-21T05:16:14.4487853Z             },
2026-06-21T05:16:14.4487934Z             {
2026-06-21T05:16:14.4488038Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-21T05:16:14.4488124Z               "line": 77
2026-06-21T05:16:14.4488201Z             },
2026-06-21T05:16:14.4488282Z             {
2026-06-21T05:16:14.4488391Z               "path": "crates/xtask/src/main.rs",
2026-06-21T05:16:14.4488483Z               "line": 778
2026-06-21T05:16:14.4488569Z             },
2026-06-21T05:16:14.4488639Z             {
2026-06-21T05:16:14.4488747Z               "path": "crates/xtask/src/main.rs",
2026-06-21T05:16:14.4488833Z               "line": 795
2026-06-21T05:16:14.4488914Z             },
2026-06-21T05:16:14.4489088Z             {
2026-06-21T05:16:14.4489199Z               "path": "crates/xtask/src/main.rs",
2026-06-21T05:16:14.4489285Z               "line": 838
2026-06-21T05:16:14.4489360Z             },
2026-06-21T05:16:14.4489446Z             {
2026-06-21T05:16:14.4489552Z               "path": "crates/xtask/src/main.rs",
2026-06-21T05:16:14.4489637Z               "line": 981
2026-06-21T05:16:14.4489713Z             },
2026-06-21T05:16:14.4489805Z             {
2026-06-21T05:16:14.4489909Z               "path": "crates/xtask/src/main.rs",
2026-06-21T05:16:14.4489999Z               "line": 1131
2026-06-21T05:16:14.4490191Z             }
2026-06-21T05:16:14.4490271Z           ]
2026-06-21T05:16:14.4490357Z         },
2026-06-21T05:16:14.4490444Z         "int": {
2026-06-21T05:16:14.4490534Z           "complete": true,
2026-06-21T05:16:14.4490624Z           "evidence": [
2026-06-21T05:16:14.4490695Z             {
2026-06-21T05:16:14.4490820Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-21T05:16:14.4490910Z               "line": 569
2026-06-21T05:16:14.4490996Z             },
2026-06-21T05:16:14.4491083Z             {
2026-06-21T05:16:14.4491206Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-21T05:16:14.4491290Z               "line": 135
2026-06-21T05:16:14.4491471Z             }
2026-06-21T05:16:14.4491551Z           ]
2026-06-21T05:16:14.4491626Z         },
2026-06-21T05:16:14.4491717Z         "unit": {
2026-06-21T05:16:14.4491809Z           "complete": true,
2026-06-21T05:16:14.4491899Z           "evidence": [
2026-06-21T05:16:14.4491989Z             {
2026-06-21T05:16:14.4492114Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T05:16:14.4492199Z               "line": 626
2026-06-21T05:16:14.4492284Z             },
2026-06-21T05:16:14.4492371Z             {
2026-06-21T05:16:14.4492476Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T05:16:14.4492566Z               "line": 675
2026-06-21T05:16:14.4492647Z             },
2026-06-21T05:16:14.4492729Z             {
2026-06-21T05:16:14.4492843Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-21T05:16:14.4492923Z               "line": 696
2026-06-21T05:16:14.4493011Z             },
2026-06-21T05:16:14.4493096Z             {
2026-06-21T05:16:14.4493214Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.4493311Z               "line": 513
2026-06-21T05:16:14.4493392Z             },
2026-06-21T05:16:14.4493471Z             {
2026-06-21T05:16:14.4493582Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.4493669Z               "line": 638
2026-06-21T05:16:14.4493753Z             },
2026-06-21T05:16:14.4493835Z             {
2026-06-21T05:16:14.4493950Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.4494036Z               "line": 675
2026-06-21T05:16:14.4494110Z             },
2026-06-21T05:16:14.4494191Z             {
2026-06-21T05:16:14.4494315Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.4494407Z               "line": 947
2026-06-21T05:16:14.4494491Z             },
2026-06-21T05:16:14.4494572Z             {
2026-06-21T05:16:14.4494687Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.4494787Z               "line": 969
2026-06-21T05:16:14.4494873Z             },
2026-06-21T05:16:14.4494950Z             {
2026-06-21T05:16:14.4495069Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.4495149Z               "line": 986
2026-06-21T05:16:14.4495241Z             },
2026-06-21T05:16:14.4495331Z             {
2026-06-21T05:16:14.4495449Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.4495536Z               "line": 1001
2026-06-21T05:16:14.4495622Z             },
2026-06-21T05:16:14.4495707Z             {
2026-06-21T05:16:14.4495817Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.4495904Z               "line": 1027
2026-06-21T05:16:14.4495989Z             },
2026-06-21T05:16:14.4496074Z             {
2026-06-21T05:16:14.4496185Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-21T05:16:14.4496276Z               "line": 457
2026-06-21T05:16:14.4496365Z             },
2026-06-21T05:16:14.4496454Z             {
2026-06-21T05:16:14.4496584Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-21T05:16:14.4496677Z               "line": 338
2026-06-21T05:16:14.4496762Z             },
2026-06-21T05:16:14.4496853Z             {
2026-06-21T05:16:14.4496959Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4497125Z               "line": 10549
2026-06-21T05:16:14.4497212Z             },
2026-06-21T05:16:14.4497297Z             {
2026-06-21T05:16:14.4497401Z               "path": "crates/xtask/src/main.rs",
2026-06-21T05:16:14.4497488Z               "line": 1260
2026-06-21T05:16:14.4497573Z             },
2026-06-21T05:16:14.4497659Z             {
2026-06-21T05:16:14.4497764Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-21T05:16:14.4497851Z               "line": 130
2026-06-21T05:16:14.4497941Z             }
2026-06-21T05:16:14.4498026Z           ]
2026-06-21T05:16:14.4498117Z         }
2026-06-21T05:16:14.4498203Z       }
2026-06-21T05:16:14.4498279Z     },
2026-06-21T05:16:14.4498423Z     {
2026-06-21T05:16:14.4498513Z       "id": "REQ-UPD-7",
2026-06-21T05:16:14.4500704Z       "title": "Origin-source update bootstrap (`spt update fetch`): pull the latest signed release directly from the GitHub release origin (`SaberMage/spt-releases`) — the per-platform artifact + its `<asset>.release.json` SignedRelease metadata — and stage it through the EXISTING verify→stage pipeline (the same `plan_verified` gate: two-key signature + channel + monotonic rollback floor + SHA-256), after which the normal consent-notif / `spt update apply` flow is unchanged. Closes the peer-only-discovery gap (REQ-UPD-1): a first-in-fleet / isolated node can update with no peer to pull from. The signed-release anchor keeps the GitHub transport untrusted-but-verified.",
2026-06-21T05:16:14.4500817Z       "requiredStages": [
2026-06-21T05:16:14.4500898Z         "impl",
2026-06-21T05:16:14.4500984Z         "unit"
2026-06-21T05:16:14.4501070Z       ],
2026-06-21T05:16:14.4501155Z       "stages": {
2026-06-21T05:16:14.4501251Z         "doc": {
2026-06-21T05:16:14.4501348Z           "complete": false,
2026-06-21T05:16:14.4501437Z           "evidence": []
2026-06-21T05:16:14.4501523Z         },
2026-06-21T05:16:14.4501609Z         "impl": {
2026-06-21T05:16:14.4501691Z           "complete": true,
2026-06-21T05:16:14.4501780Z           "evidence": [
2026-06-21T05:16:14.4501855Z             {
2026-06-21T05:16:14.4501960Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4502059Z               "line": 2626
2026-06-21T05:16:14.4502139Z             }
2026-06-21T05:16:14.4502220Z           ]
2026-06-21T05:16:14.4502302Z         },
2026-06-21T05:16:14.4502393Z         "int": {
2026-06-21T05:16:14.4502478Z           "complete": false,
2026-06-21T05:16:14.4502568Z           "evidence": []
2026-06-21T05:16:14.4502655Z         },
2026-06-21T05:16:14.4502741Z         "unit": {
2026-06-21T05:16:14.4502830Z           "complete": true,
2026-06-21T05:16:14.4502917Z           "evidence": [
2026-06-21T05:16:14.4503012Z             {
2026-06-21T05:16:14.4503112Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4503188Z               "line": 10525
2026-06-21T05:16:14.4503265Z             }
2026-06-21T05:16:14.4503350Z           ]
2026-06-21T05:16:14.4503436Z         }
2026-06-21T05:16:14.4503517Z       }
2026-06-21T05:16:14.4503604Z     },
2026-06-21T05:16:14.4503684Z     {
2026-06-21T05:16:14.4503779Z       "id": "REQ-UPD-8",
2026-06-21T05:16:14.4506168Z       "title": "Platform-safe `spt update fetch` + apply platform-guard (v0.3.1 cross-OS brick fix): `spt update fetch` stages the signed multi-platform `SignedUpdateSet` (`update-set.json` + every platform artifact it names), never a platform-blind single `SignedRelease`, so local apply selects `current_platform()` and P2P re-serve lets each peer select ITS own platform. Defense-in-depth: `apply_staged` REFUSES a staged single-release artifact unless it is platform-stamped for THIS node (an unstamped pre-v0.3.2 single, or a single stamped for another OS, fail-safe refuses — the guard that alone prevents the v0.3.1 brick where a Linux ELF was applied as `spt.exe`). UX: a friendly post-apply message (`Updated spt-core to vX.Y.Z.` + changelog URL) driven by an additive `product_version` metadata field, with a release-counter fallback when absent.",
2026-06-21T05:16:14.4506396Z       "requiredStages": [
2026-06-21T05:16:14.4506488Z         "impl",
2026-06-21T05:16:14.4506577Z         "unit"
2026-06-21T05:16:14.4506658Z       ],
2026-06-21T05:16:14.4506755Z       "stages": {
2026-06-21T05:16:14.4506831Z         "doc": {
2026-06-21T05:16:14.4506925Z           "complete": false,
2026-06-21T05:16:14.4507019Z           "evidence": []
2026-06-21T05:16:14.4507096Z         },
2026-06-21T05:16:14.4507186Z         "impl": {
2026-06-21T05:16:14.4507280Z           "complete": true,
2026-06-21T05:16:14.4507365Z           "evidence": [
2026-06-21T05:16:14.4507447Z             {
2026-06-21T05:16:14.4507580Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T05:16:14.4507772Z               "line": 77
2026-06-21T05:16:14.4507848Z             },
2026-06-21T05:16:14.4507937Z             {
2026-06-21T05:16:14.4508058Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.4508152Z               "line": 49
2026-06-21T05:16:14.4508228Z             },
2026-06-21T05:16:14.4508314Z             {
2026-06-21T05:16:14.4508430Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.4508511Z               "line": 152
2026-06-21T05:16:14.4508595Z             },
2026-06-21T05:16:14.4508673Z             {
2026-06-21T05:16:14.4508796Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.4508886Z               "line": 215
2026-06-21T05:16:14.4509031Z             },
2026-06-21T05:16:14.4509115Z             {
2026-06-21T05:16:14.4509220Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.4509303Z               "line": 230
2026-06-21T05:16:14.4509389Z             },
2026-06-21T05:16:14.4509472Z             {
2026-06-21T05:16:14.4509583Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.4509675Z               "line": 247
2026-06-21T05:16:14.4509754Z             },
2026-06-21T05:16:14.4509835Z             {
2026-06-21T05:16:14.4509958Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.4510039Z               "line": 269
2026-06-21T05:16:14.4510123Z             },
2026-06-21T05:16:14.4510199Z             {
2026-06-21T05:16:14.4510319Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.4510396Z               "line": 66
2026-06-21T05:16:14.4510475Z             },
2026-06-21T05:16:14.4510561Z             {
2026-06-21T05:16:14.4510672Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.4510766Z               "line": 154
2026-06-21T05:16:14.4510838Z             },
2026-06-21T05:16:14.4510915Z             {
2026-06-21T05:16:14.4511024Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4511119Z               "line": 2430
2026-06-21T05:16:14.4511201Z             },
2026-06-21T05:16:14.4511273Z             {
2026-06-21T05:16:14.4511367Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4511458Z               "line": 2493
2026-06-21T05:16:14.4511540Z             },
2026-06-21T05:16:14.4511630Z             {
2026-06-21T05:16:14.4511739Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4511835Z               "line": 2503
2026-06-21T05:16:14.4511922Z             },
2026-06-21T05:16:14.4512006Z             {
2026-06-21T05:16:14.4512112Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4512198Z               "line": 2510
2026-06-21T05:16:14.4512279Z             },
2026-06-21T05:16:14.4512364Z             {
2026-06-21T05:16:14.4512472Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4512559Z               "line": 2627
2026-06-21T05:16:14.4512643Z             },
2026-06-21T05:16:14.4512728Z             {
2026-06-21T05:16:14.4512842Z               "path": "crates/xtask/src/main.rs",
2026-06-21T05:16:14.4512934Z               "line": 480
2026-06-21T05:16:14.4513019Z             },
2026-06-21T05:16:14.4513104Z             {
2026-06-21T05:16:14.4513210Z               "path": "crates/xtask/src/main.rs",
2026-06-21T05:16:14.4513296Z               "line": 494
2026-06-21T05:16:14.4513482Z             }
2026-06-21T05:16:14.4513563Z           ]
2026-06-21T05:16:14.4513653Z         },
2026-06-21T05:16:14.4513738Z         "int": {
2026-06-21T05:16:14.4513835Z           "complete": false,
2026-06-21T05:16:14.4513915Z           "evidence": []
2026-06-21T05:16:14.4513991Z         },
2026-06-21T05:16:14.4514077Z         "unit": {
2026-06-21T05:16:14.4514159Z           "complete": true,
2026-06-21T05:16:14.4514254Z           "evidence": [
2026-06-21T05:16:14.4514335Z             {
2026-06-21T05:16:14.4514465Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-21T05:16:14.4514544Z               "line": 476
2026-06-21T05:16:14.4514741Z             },
2026-06-21T05:16:14.4514827Z             {
2026-06-21T05:16:14.4514935Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-21T05:16:14.4515027Z               "line": 580
2026-06-21T05:16:14.4515113Z             },
2026-06-21T05:16:14.4515202Z             {
2026-06-21T05:16:14.4515311Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4515407Z               "line": 10527
2026-06-21T05:16:14.4515493Z             },
2026-06-21T05:16:14.4515574Z             {
2026-06-21T05:16:14.4515669Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4515760Z               "line": 10549
2026-06-21T05:16:14.4515846Z             }
2026-06-21T05:16:14.4515931Z           ]
2026-06-21T05:16:14.4516017Z         }
2026-06-21T05:16:14.4516104Z       }
2026-06-21T05:16:14.4516189Z     },
2026-06-21T05:16:14.4516264Z     {
2026-06-21T05:16:14.4516351Z       "id": "REQ-UPD-9",
2026-06-21T05:16:14.4518855Z       "title": "`gh_release` adapter [update] avenue (optional signing): an adapter declares `[update] avenue = \"gh_release\", repo = \"user/repo\"` (+ optional `asset`, default `adapter.spt`; + optional Ed25519 `signing_key`); spt-core's ripple compares the repo's LATEST GitHub release version against the installed adapter version and, when newer, auto-updates by fetching the release `.spt` archive (the REQ-INSTALL-9 `--release` fetch primitive) → verifies the `.spt` against `signing_key` if declared, else HTTPS+GitHub first-acquisition trust → re-extracts + re-registers the adapter root. Lets a harness adapter ship updates from its own GitHub releases with NO signing tooling or plugin coupling (removes the perri file_pull/delegated avenue blockers). Acquisition-trust mirrors `--release` + the installer first-fetch; does not alter spt-core self-update (REQ-UPD-1..8).",
2026-06-21T05:16:14.4519032Z       "requiredStages": [
2026-06-21T05:16:14.4519118Z         "doc",
2026-06-21T05:16:14.4519208Z         "impl",
2026-06-21T05:16:14.4519295Z         "unit"
2026-06-21T05:16:14.4519380Z       ],
2026-06-21T05:16:14.4519470Z       "stages": {
2026-06-21T05:16:14.4519562Z         "doc": {
2026-06-21T05:16:14.4519662Z           "complete": true,
2026-06-21T05:16:14.4519743Z           "evidence": [
2026-06-21T05:16:14.4519829Z             {
2026-06-21T05:16:14.4519934Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.4520018Z               "line": 93
2026-06-21T05:16:14.4520109Z             },
2026-06-21T05:16:14.4520192Z             {
2026-06-21T05:16:14.4520292Z               "path": "docs/MANIFEST.md",
2026-06-21T05:16:14.4520371Z               "line": 285
2026-06-21T05:16:14.4520456Z             }
2026-06-21T05:16:14.4520542Z           ]
2026-06-21T05:16:14.4520627Z         },
2026-06-21T05:16:14.4520712Z         "impl": {
2026-06-21T05:16:14.4520797Z           "complete": true,
2026-06-21T05:16:14.4520879Z           "evidence": [
2026-06-21T05:16:14.4520961Z             {
2026-06-21T05:16:14.4521098Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T05:16:14.4521194Z               "line": 128
2026-06-21T05:16:14.4521275Z             },
2026-06-21T05:16:14.4521360Z             {
2026-06-21T05:16:14.4521466Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.4521561Z               "line": 533
2026-06-21T05:16:14.4521633Z             },
2026-06-21T05:16:14.4521824Z             {
2026-06-21T05:16:14.4521947Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.4522037Z               "line": 459
2026-06-21T05:16:14.4522124Z             },
2026-06-21T05:16:14.4522209Z             {
2026-06-21T05:16:14.4522323Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.4522410Z               "line": 505
2026-06-21T05:16:14.4522492Z             },
2026-06-21T05:16:14.4522575Z             {
2026-06-21T05:16:14.4522686Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.4522773Z               "line": 928
2026-06-21T05:16:14.4522957Z             },
2026-06-21T05:16:14.4523037Z             {
2026-06-21T05:16:14.4523152Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-21T05:16:14.4523245Z               "line": 302
2026-06-21T05:16:14.4523330Z             },
2026-06-21T05:16:14.4523417Z             {
2026-06-21T05:16:14.4523522Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4523617Z               "line": 5675
2026-06-21T05:16:14.4523689Z             },
2026-06-21T05:16:14.4523784Z             {
2026-06-21T05:16:14.4523875Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4523965Z               "line": 5720
2026-06-21T05:16:14.4524052Z             },
2026-06-21T05:16:14.4524132Z             {
2026-06-21T05:16:14.4524236Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4524328Z               "line": 5857
2026-06-21T05:16:14.4524409Z             },
2026-06-21T05:16:14.4524490Z             {
2026-06-21T05:16:14.4524599Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4524696Z               "line": 5878
2026-06-21T05:16:14.4524781Z             },
2026-06-21T05:16:14.4524862Z             {
2026-06-21T05:16:14.4524962Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4525053Z               "line": 5901
2026-06-21T05:16:14.4525133Z             },
2026-06-21T05:16:14.4525224Z             {
2026-06-21T05:16:14.4525325Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4525415Z               "line": 5928
2026-06-21T05:16:14.4525500Z             }
2026-06-21T05:16:14.4525587Z           ]
2026-06-21T05:16:14.4525674Z         },
2026-06-21T05:16:14.4525758Z         "int": {
2026-06-21T05:16:14.4525861Z           "complete": false,
2026-06-21T05:16:14.4525947Z           "evidence": []
2026-06-21T05:16:14.4526030Z         },
2026-06-21T05:16:14.4526115Z         "unit": {
2026-06-21T05:16:14.4526214Z           "complete": true,
2026-06-21T05:16:14.4526315Z           "evidence": [
2026-06-21T05:16:14.4526392Z             {
2026-06-21T05:16:14.4529692Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-21T05:16:14.4529826Z               "line": 259
2026-06-21T05:16:14.4529921Z             },
2026-06-21T05:16:14.4530007Z             {
2026-06-21T05:16:14.4530146Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-21T05:16:14.4530250Z               "line": 657
2026-06-21T05:16:14.4530331Z             },
2026-06-21T05:16:14.4530403Z             {
2026-06-21T05:16:14.4530541Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-21T05:16:14.4530627Z               "line": 1107
2026-06-21T05:16:14.4530709Z             },
2026-06-21T05:16:14.4530790Z             {
2026-06-21T05:16:14.4530898Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4530983Z               "line": 7565
2026-06-21T05:16:14.4531064Z             }
2026-06-21T05:16:14.4531145Z           ]
2026-06-21T05:16:14.4531234Z         }
2026-06-21T05:16:14.4531314Z       }
2026-06-21T05:16:14.4531401Z     },
2026-06-21T05:16:14.4531496Z     {
2026-06-21T05:16:14.4531577Z       "id": "REQ-WHOAMI-1",
2026-06-21T05:16:14.4533232Z       "title": "`spt whoami` is a thin ALIAS for `spt endpoint list` (full output: the SELF pin + the subnet roster) — the standalone bare-id command is dropped (the `id=$(spt whoami)` capture was never a real pattern: env vars don't persist between agent tool calls). The one new render: the `endpoint list` SELF pin carries the Self endpoint's authored `endpoint description` (info::read_info(...).resources) when present, inline after the liveness state. whoami stays a top-level hot-path verb (parse unchanged, REQ-MSG-9).",
2026-06-21T05:16:14.4533484Z       "requiredStages": [
2026-06-21T05:16:14.4533569Z         "doc",
2026-06-21T05:16:14.4533660Z         "impl",
2026-06-21T05:16:14.4533745Z         "unit"
2026-06-21T05:16:14.4533829Z       ],
2026-06-21T05:16:14.4533919Z       "stages": {
2026-06-21T05:16:14.4534006Z         "doc": {
2026-06-21T05:16:14.4534097Z           "complete": true,
2026-06-21T05:16:14.4534282Z           "evidence": [
2026-06-21T05:16:14.4534364Z             {
2026-06-21T05:16:14.4534463Z               "path": "CONTEXT.md",
2026-06-21T05:16:14.4534544Z               "line": 707
2026-06-21T05:16:14.4534626Z             }
2026-06-21T05:16:14.4534707Z           ]
2026-06-21T05:16:14.4534782Z         },
2026-06-21T05:16:14.4534868Z         "impl": {
2026-06-21T05:16:14.4534955Z           "complete": true,
2026-06-21T05:16:14.4535045Z           "evidence": [
2026-06-21T05:16:14.4535130Z             {
2026-06-21T05:16:14.4535231Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4535322Z               "line": 3190
2026-06-21T05:16:14.4535412Z             },
2026-06-21T05:16:14.4535493Z             {
2026-06-21T05:16:14.4535590Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4535669Z               "line": 3218
2026-06-21T05:16:14.4535760Z             }
2026-06-21T05:16:14.4535842Z           ]
2026-06-21T05:16:14.4535933Z         },
2026-06-21T05:16:14.4536027Z         "int": {
2026-06-21T05:16:14.4536118Z           "complete": false,
2026-06-21T05:16:14.4536215Z           "evidence": []
2026-06-21T05:16:14.4536299Z         },
2026-06-21T05:16:14.4536389Z         "unit": {
2026-06-21T05:16:14.4536479Z           "complete": true,
2026-06-21T05:16:14.4536575Z           "evidence": [
2026-06-21T05:16:14.4536661Z             {
2026-06-21T05:16:14.4536755Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4536842Z               "line": 7847
2026-06-21T05:16:14.4536919Z             },
2026-06-21T05:16:14.4537008Z             {
2026-06-21T05:16:14.4537108Z               "path": "crates/spt/src/cli.rs",
2026-06-21T05:16:14.4537195Z               "line": 7900
2026-06-21T05:16:14.4537276Z             }
2026-06-21T05:16:14.4537351Z           ]
2026-06-21T05:16:14.4537433Z         }
2026-06-21T05:16:14.4537515Z       }
2026-06-21T05:16:14.4537605Z     }
2026-06-21T05:16:14.4537690Z   ],
2026-06-21T05:16:14.4537791Z   "findings": []
2026-06-21T05:16:14.4537877Z }
